Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- WarGame
- 보안
- 웹해킹
- 버그헌팅
- 정보보안
- wargame.kr
- webhacking
- 문제풀이
- 프로그래밍
- 시스템
- 포렌식
- 워게임
- kangsecu
- 해킹
- hacking
- 포너블
- 자료구조
- 선린인터넷고등학교
- 블록체인
- C언어
- webhacking.kr
- 버그바운티
- CTF
- Pwnable
- DVP
- 네퓨즈
- nefus
- 정보보호
- xcz
- 코드게이트
Archives
- Today
- Total
kangsecu's B1og
[Wargame.kr] md5_compare 문제풀이 본문
이번에는 [Wargame.kr]에 있는 문제중 하나인 md5_compare문제를 풀어보도록 하겠습니다.
우선 문제에 들어가면 "그냥 비교만해 진짜루다가" 라고 합니다.
이제 start를 눌러 시작하도록 하겠습니다.
이런 문제화면이 뜹니다. 보아하니 VALUE1과 VALUE2를 각각 입력받아서 문제에서 한 말대로 두개의 값을 비교하는 문제인 것 같습니다.
그럼 코드를 확인하도록 하겠습니다.
이러한 문제 코드가 있습니다. 코드를 해석해보니 v1값은 ctype_alpha함수로 인하여 영어만 들어와야 하며, v2의 값에는 is_numeric함수로 숫자만 들어가야 한다는 것을 확인이 가능합니다. 또한, 세번째 if문을 해석하면 v2를 md5로 해쉬한 값이 v1과 v2가 같아야 처음에 참으로 선언되었던 chk함수가 계속 참으로 유지가 가능합니다. 그럼 이제 우리는 어떻게 md5를 이용하여 숫자와 영어가 같게 만들수 있을까 입니다. 그리고 그 방법은 바로
php magic hash에 있습니다. 우리는 이것을 이용하여 위에 소스코드를 우회가 가능합니다.
이렇게 두개의 값을 입력해주면 문제가 해결되며 flag가 출력됩니다.
md5_compare Clear!