본문 바로가기

10번 문제에요.

배점은 235점, 이름은 md5_compare 에요.

 

md5_compare

 

JUST COMPARE ONLY.

with the other value :D

 

들어가면 입력칸 두개가 있어요.

 

소스를 보면

먼저

if (!ctype_alpha($v1)) {$chk = false};

라인떄문에 첫번째 입력은 무조건 알파벳 집합이어야 해요.

그다음

if (!is_numeric($v2)) {$chk = false};

라인때문에 두번째 입력은 숫자 집합이어야 해요.

그리고

if (md5($v1) != md5($v2)) {$chk = false};

라인으로 두 입력값을 md5해싱해서 같은지 비교를 해요.

 

php에서의 md5에는 유명한 취약점이 있어요.

매직해시라는건데...

해시가 0e 로 시작하고 그 뒤의 문자열이 전부 숫자일경우 0.0 으로 인식을 해요.

 

그러니 첫번째 입력의 알파벳으로만 이루어진 매직해시와

두번째 입력의 숫자로만 이루어진 매직해시를 넣으면 문제가 풀리겠네요.

 

구글링을 통해서 두 해시값을 찾았어요.

QNKCDZO

24061078

이에요.

 

echo ($v1 == $v2);

의 출력이 1 이죠?

 

그러니 저 두 값을 집어넣으면?

 

Congratulations! FLAG is : 7f462c3a5ab9cc7defd7cdcb52ac35f8e4f619c0

 

빠밤!

 

키가 나왔네요.

'연구글 > wargame.kr' 카테고리의 다른 글

wargame.kr 12 / type confusion  (0) 2020.10.23
wargame.kr 11 / tmitter  (0) 2020.10.22
wargame.kr 9 / DB is really GOOD  (0) 2020.10.19
wargame.kr 8 / md5_password  (0) 2020.10.13
wargame.kr 7 / strcmp  (0) 2020.10.07
댓글