- 'strcmp' 함수를 우회하라는 문제 확인.
- Start
- view-source
- 패스워드가 일치하면 Flag를 획득할 수 있다.
- if (strcmp($_POST['password'], $password) == 0) 를 통해 패스워드를 검증
- strcmp 함수는 두 개의 인자 값이 같으면 '0'을 반환한다.
- PHP 5.3버전에서는 strcmp 함수의 인자 값으로 배열을 입력하면 NULL을 반환하는데, 이것을 이용한다.
( 참고로 5.2버전에서는 인자 값으로 배열을 입력하면 'Array'라는 문자열로 변환하여 1 또는 -1을 반환한다.)
- 느슨한 비교문(==)에서 'NULL == 0' 은 참이므로 password에 배열을 전달해보자.
- 'password[]=pass' 를 전달하여 strcmp 함수를 우회, Flag를 획득할 수 있었다.
'워게임 > Wargame.kr' 카테고리의 다른 글
Wargame.kr - md5_compare (0) | 2021.06.08 |
---|---|
Wargame.kr - md5 password (0) | 2021.06.04 |
Wargame.kr - WTF_CODE (0) | 2021.05.27 |
Wargame.kr - flee button (0) | 2021.05.23 |
Wargame.kr - already got (0) | 2021.05.23 |