-
HackCTF [ Hash ]Wargame Site/HackCTF 2019. 4. 23. 15:36
240610708 을 md5 로 암호화 시킨 것을 넣어주면 되는 일 아닌가? ㅎㅎ
그랬더니 플래그를 뱉어냈다.
하지만, 이번 포스팅의 목적은 단순한 문제가 아닌 Magic Hash 에 대한 내용을 다루려고 한다.
Magic Hash 란 PHP 의 비교연산자의 취약점을 이용한 취약점이다.
md5 를 통해 해쉬화했을 때 0e[ ] 와 같은 형태로 나오는 형태가 이러한 Magic Hash 취약점의 대상이된다.
출처 : https://www.php.net/manual/en/language.operators.comparison.php 우선 기본적으로 0 의 E n 승의 값은 0 * 10 의 n 승을 의미하므로 n 이 어떤 값이든 간에 0 이 나온다.
따라서 0e10000 == 0e3 == 0e12 == 0 과 같은 값들은 모두 True 를 반환한다.
이를 이용해서 해쉬한 값이 0e 형태일 때, Magic Hash 취약점에 노출된다.
md5 ("240610708") = 0e462097431906509019562988736854
이기 때문에 단순히 md("240610708") == 0 이라는 조건 또한 True 가 된다.
'Wargame Site > HackCTF' 카테고리의 다른 글
HackCTF [ 마법봉 ] (0) 2019.04.23 HackCTF [ Hidden Flag ] (0) 2019.04.08 HackCTF [ 행운의 숫자 ] (2) 2019.03.28 댓글