워게임/HackCTF [HackCTF] Web - 마법봉 풀이 - 바로 View Source를 통해서 확인해보자. 소스보기를 통하니 "240610708"을 md5로 암호화한 값과 입력값을 sha1으로 암호화한 값이 일치하면 flag 값을 반환한다는 것을 알 수 있었다. "240610708"을 md5로 암호화 하면 "0e462097431906509019562988736854"로 암호화 된 값을 확인할 수 있었다. 그러면 어떻게 md5와 sha1의 암호화한 동일한 값을 찾을 수 있을까? 바로 PHP Magic Hash라는 것을 찾아보면 알 수 있다. php magic hash 라는 것에 대해 간단히 설명하면 <?php $a = 0e1234; $b = 0e1111; ?> 이렇게 두가지 변수가 선언되어 있다고 하면 $a == $b라하면 동일하다고 판단된다. 왜냐하면 e를 지수로 판단한다 즉, $a가 0*e1234 = 0이라 판단되고, $b도 마찬가지로 0이라 판단되며 동일하다고 판단된다. 그렇기 때문에 md5("240601708") == sha1("10932435112")가 같게 되므로 flag 값을 얻을 수 있다. 참조 https://ch4njun.tistory.com/66 [Concept] PHP Magic Hash 취약점 PHP에서 Magic Hash란 사실 취약점이라기보다 특수동작이다. A == B 를 비교하면 두개의 자료형이 달라도 데이터만 일치하다면 TRUE를 반환한다. ( 이를 방지하기 위해서는 A === B 를 사용하면 된다. ) ch4njun.tistory.com 공유하기 게시글 관리 MSS '워게임 > HackCTF' 카테고리의 다른 글 [HackCTF] Web - LOL 풀이 (0) 2021.08.15 [HackCTF] Web - Cookie 풀이 (0) 2021.08.14 [HackCTF] Web - Login 풀이 (0) 2021.08.06 [HackCTF] Web - Guess me 풀이 (0) 2021.08.01 [HackCTF] Web - 보물 풀이 (0) 2021.07.24 Contents 당신이 좋아할만한 콘텐츠 [HackCTF] Web - LOL 풀이 2021.08.15 [HackCTF] Web - Cookie 풀이 2021.08.14 [HackCTF] Web - Login 풀이 2021.08.06 [HackCTF] Web - Guess me 풀이 2021.08.01 댓글 0 + 이전 댓글 더보기