상세 컨텐츠

본문 제목

[HackCTF-Web#8] 마법봉 - 100 points

WebHacking/HackCTF

by bing_su 2021. 3. 24. 14:41

본문

반응형
SMALL

HackCTF Web의 8번째 문제는 마법봉이다.

문제 링크: http://ctf.j0n9hyun.xyz:2029

문제 화면이다. 해쉬에 마법을 부여하면 그 어떤 것도 뚫린다는 문구가 있다. 이를 통해 이 문제는 매직 해시 취약점을 이용하는 문제임을 알 수 있다. 일단 페이지 소스를 보자.

md5("240610708") 값과 sha1($input) 값을 동등 비교해 equal일 경우 플래그가 출력되는 것을 알 수 있다. 

md5("240610708") 결과는 위의 사진과 같다.

 

매직 해시는 비교 연산을 이용해 Type Juggling을 이용해 같은 값으로 인식되게 하는 동작이다.

PHP에서 0e<숫자>의 경우, 동등 비교 시 0 값으로 인식되는 점을 이용한다.

참고한 사이트: www.whitehatsec.com/blog/magic-hashes/

 

Magic Hashes | WhiteHat Security

For more than the last decade, PHP programmers have been wrestling with the equals-equals (==) operator.

www.whitehatsec.com

위의 사이트에 들어가면 다양한 매직 넘버가 있다. md5("240610708")은 동등 비교 시 Type Juggling에 의해 0으로 인식되므로 sha1($input) 역시 동등 비교 시 0으로 인식해야 한다.

따라서 표의 10932435112를 입력 창에 넣어주자.

이를 입력하면 flag 값이 정상적으로 출력되는 것을 확인할 수 있다. 이를 인증하면 문제가 풀린다.

반응형
LIST

관련글 더보기

댓글 영역