Wargame.kr

Web_550

strcmp




550점대로 넘어왔습니다. strcmp 함수의 취약점을 이용한 문제인것같습니다.



문제에 접속하니 패스워드와 체크하는 버튼이 우릴 기다리고 있습니다.

view-source를 눌러 소스를 확인해봅시다.



POST로 값을 입력받아 password 변수와 비교를 하여 strcmp 함수의 결과로 0을 반환시키면 Flag를 뱉어주네요.

password 변수의 경우 더미값을 이용한 rand()로 생성한 랜덤값이기 때문에 추측하기 어렵습니다.

따라서 정상적인 방법으로는 패스워드를 맞출 수 없습니다.


이렇게 다른 패스워드 값을 넣어준다면  Wrong passwrod.. 메시지를 출력합니다.

구글링을 통해 찾아보니 PHP 5.3+ 버전에서는 strcmp 함수에 string 값이 아닌 Array 값을 입력 해 주었을 때 0을 반환한다고 합니다.

이러한 특성을 이용하여 인증을 우회해봅시다.



burpsuite를 이용하여 POST로 값을 요청해주었습니다.

password 값을 배열로 인식하도록 만들어준 후, 값을 요청해 준 결과 플래그를 뱉어내는 것을 확인 할 수 있습니다.

'Wargame > Wargame.kr' 카테고리의 다른 글

[Wargame.kr] Web_600_tmitter  (0) 2016.05.20
[Wargame.kr] Web_550_type confusion  (0) 2016.05.19
[Wargame.kr] Web_500_md5 password  (0) 2016.05.18
[Wargame.kr] Web_500_md5_compare  (2) 2016.05.18
[Wargame.kr] Web_500_fly me to the moon  (0) 2016.05.17

+ Recent posts