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/
위의 사이트에 들어가면 다양한 매직 넘버가 있다. md5("240610708")은 동등 비교 시 Type Juggling에 의해 0으로 인식되므로 sha1($input) 역시 동등 비교 시 0으로 인식해야 한다.
따라서 표의 10932435112를 입력 창에 넣어주자.
이를 입력하면 flag 값이 정상적으로 출력되는 것을 확인할 수 있다. 이를 인증하면 문제가 풀린다.
[HackCTF-Web#10] Input Check - 150 points (0) | 2021.03.24 |
---|---|
[HackCTF-Web#9] Time - 150 points (0) | 2021.03.24 |
[HackCTF-Web#7] Login - 100 points (0) | 2021.03.24 |
[HackCTF-Web#6] Read File - 100 points (0) | 2021.03.23 |
[HackCTF-Web#5] Guess me - 100 points (0) | 2021.03.02 |
댓글 영역