article thumbnail image
Published 2021. 5. 30. 20:07

문제

 

- 'strcmp' 함수를 우회하라는 문제 확인.


- Start

Start


- view-source

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
복사했습니다!