ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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

    댓글

Designed by Tistory.