문제 페이지로 들어가면 두 값을 입력하도록 폼이 있다.
소스보기로 어떤 동작을 하는지 확인해보았다.
첫 번째 입력 창엔 알파벳만 포함하는 문자열을, 두 번째 입력 창엔 숫자만 포함하는 문자열인지 검사한다.
그리고 두 입력값을 MD5로 해시화해서, 같을 때 키 값을 얻을 수 있다.
이번 문제는 MD5의 충돌이 발생하는 하나는 알파벳으로만, 다른 하나는 숫자로만 구성된 문자열 한 쌍을 찾아야 하는 것이다.
예전에 이와 관련해 php의 md5 magic hash라는 특수 동작이 있다는 것이 생각나서 구글에 검색해보았다.
(문제와 큰 관련은 없지만 참고하시려면: https://blog.lael.be/post/1238)
검색하는 도중에 영문과 숫자로 된 두 문자열의 해시 값이 같다는 글을 찾았고, 바로 넣어보았다.
FLAG를 얻을 수 있었다.
'Wargame > wargame.kr' 카테고리의 다른 글
11. strcmp (0) | 2018.07.20 |
---|---|
9. md5 password (0) | 2018.07.19 |
7. fly me to the moon (0) | 2018.07.19 |
6. DB is really GOOD (0) | 2018.07.19 |
5. WTF_CODE (0) | 2018.07.18 |