문제를 보면 id 값이 admin 이면 문제는 해결된다. preg_math() 함수로 필터링 하는 문자들을 보면 '(따옴표)를 필터링 하고 있고, admin 이라는 문자열을 필터링 하고 있다. 그러나 첫번째 preg_match() 함수를 보면 i 가 있고, 두번째는 i가없다. preg_match() 함수의 패턴 구분자 뒤의 'i'는 대소문자 무시를 하게 된다. 만약 두번째 preg_match() 함수에 'i' 가 있었다면 admin 이라는 문자열이든, Admin 이라는 문자열이든 대소문자 구분하지 않고 필터링 하게 된다. 그러나 지금 이 함수에는 'i' 가 없다. 또한 mysql은 대소문자 구분을 하지 않는다. 따라서 대문자로 우회할 수 있다.
payload : /?id=ADmin
'Security & Hacking > Wargame' 카테고리의 다른 글
[LoS] skeleton (0) | 2020.11.10 |
---|---|
[LoS] vampire (0) | 2020.11.10 |
[LoS] orge (0) | 2020.11.06 |
[LoS] darkelf (0) | 2020.11.03 |
[LoS] goblin (0) | 2020.11.03 |