이번문제는 매우 간단하다. 문제의 요지는 /pattern/i 와같이 정규식 패턴을 검사할때 i 의 역할을 알고있냐의 여부를 묻는 문제다.
소스코드분석은 아래와 같다. 우선GET 으로 id 파라미터를 받고있으며 싱글쿼터인 ' 가 들어가면 No Hack 이 뜨며 PHP가 죽는다. 이어서 id 파라미터에 admin 이라는 문자열이 들어가면 HeHe 가 뜨며 동일하게 PHP 가 죽는데, 여기서 취약점이 발생한다. 싱글쿼터를 검사할때는 i 라는 스위치가 붙어있음을 확인 가능하다. 이는 일반적으로 ignore-case 라는 뜻이며 대소문자를 구분하지 않겠다는 의미이다. 리눅스에서 grep 의 옵션중에 -i 옵션과 동일한 의미이다. 이는 보안관제에서 룰기반으로 패킷을 검사할때 nocase 와도 같은 것이다.
즉, admin 을 검사할때는 i 스위치가 붙어있지 않아 대소문자를 구분한다. 따라서 소문자인 admin 만 필터링중인것이다,.
따라서, 대문자 ADMIN 을 id 파라미터로 보내면 해당 문제는 clear 된다.
'WebHacking > Lord of SQLInjection' 카테고리의 다른 글
skeleton (1) | 2022.11.17 |
---|---|
vampire (0) | 2022.11.17 |
orge (0) | 2022.11.15 |
darkelf (0) | 2022.11.15 |
wolfman (0) | 2022.11.15 |