profile image

L o a d i n g . . .

article thumbnail image
Published 2021. 11. 25. 21:08

Input Check 문제

strcmp 취약점

문제 접속 화면이다.

 

 

시키는대로 flag를 입력하면 위와 같이 뜬다.

 

페이지 소스를 확인하니 힌트가 있었다!

힌트 : Input Command check가 배열 타입이다.

 

'php input 배열 취약점' 이런식으로 구글링 했더니

strcmp 취약점을 찾을 수 있었다.

 

int strcmp ( string $str1 , string $str2 )

strcmp 함수의 원형은 위와 같다.

각 str1과 str2를 인자로 넣어주면 리턴값으로 두 값이 같으면 0, 다르면 0이 아닌 값을 리턴한다.

 

이때, 인자로 string이 아닌 배열을 넣어줄 경우, strcmp함수는 NULL을 반환하는 취약점이 발생한다.

(특정 PHP 5.3 버전에서 발생)

 

$a=get['text']
if(strcmp("flag",$a)==0)

즉, strcmp에서 문자열 배열을 비교시 NULL을 반환한다.

NULL == 0 으로 느슨한 비교를할떄 True 가 반환된다.

 

/?text[]=flag

따라서 위와 같이 배열 형태로 flag를 전달한다.

 

 

플래그 획득!

 

 

 

참고 : https://hackability.kr/entry/PHP-strcmp-%EC%B7%A8%EC%95%BD%EC%A0%90%EC%9D%84-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9D%B8%EC%A6%9D-%EC%9A%B0%ED%9A%8C

'Wargame > HackCTF' 카테고리의 다른 글

[HackCTF] Web (Cookie)  (0) 2021.11.25
[HackCTF] Web (Home)  (0) 2021.11.25
[HackCTF] Web (Time)  (0) 2021.11.25
[HackCTF] Web (마법봉)  (0) 2021.11.25
[HackCTF] Web (Login)  (0) 2021.11.25
복사했습니다!