우선 소스코드를 살펴보자
입력한 value1은 v1에 저장되고, value2는 v2에 저장한다.
ctype_alpha()는 알파벳으로 구성되어있는지 확인하는 함수로 true or false를 반환한다.
is_numerice()은 숫자로 구성되어 있는지 확인하는 함수로 true or false를 반환한다.
v1이 알파벳이 아니면 false를 반환하고, v2가 숫자면 flase를 반환한다.
md5($v1), md5($v2)이 다르면 false를 반환한다.
그러므로 v1은 알파벳이고, v2는 숫자이며 v1과 v2의 md5값이 같아야 한다.
어떻게 할 수 있을까??
php는 int형과 char형을 구분하여 선언하지 않는다고 한다.
또한, md5 함수에 넣었을 때 해쉬값이 0e로 시작하는 경우 두 값을 비교하면 무조건 참이 된다고 한다.
0e 뒤에 무엇이 오든지 간에 전부 0이다.
md5('240610708')과 md5('QNKCDZO')의 해시값은 0e로 시작한다. 그러므로 v1에는 QNKCDZO를, v2에는 240610708을 넣으면 플래그를 얻을 수 있다.
'Challenge > wargame.kr' 카테고리의 다른 글
[Wargame.kr] md5 password (0) | 2020.11.22 |
---|---|
[Wargame.kr] WTF_CODE (0) | 2020.11.22 |
[wargame] wtf_code (0) | 2020.07.14 |
[wargame] login filtering (0) | 2020.07.14 |
[wargame] qr code puzzle (0) | 2020.07.13 |