Input Check 문제
strcmp 취약점



힌트 : 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를 전달한다.

'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 |