문제를 보면 sql 인젝션 문제인 것 같다.
페이지 소스를 보면 hi admin을 출력해야 하는 것 같다. get방식으로 no의 값을 받는다.
erigi 함수를 보면 sql 인젝션을 방어하기 위해 필터링하는 문자들이 보이는데 공백문자도 필터링하고있다.
이는 %0a 로 우회할 수 있다.
또한 mysql_query 함수를 보면 id는 guest로 지정하고 있고 no값만 get방식으로 받고 있다.
우선 입력창에 1을 입력하면 결과값으로 hi guest가 출력된다. guest의 no 값은 1이다.
admin의 no 값은 1보다 큰 값일 것이라고 추측할 수 있다.
url에 get 방식으로 "no=12 or no>1" 을 우회하여 "?no=12%0aor%0ano>1" 을 전달하면 문제가 해결된다.
guest의 no 값은 1 이기 때문에 12는 거짓이므로 뒤에 no>1을 참으로 하여 admin으로 인식되어 문제가 해결된다.
'Security & Hacking > Wargame' 카테고리의 다른 글
[XSS game] Level 2 (0) | 2019.08.06 |
---|---|
[XSS game] Level 1 (0) | 2019.08.06 |
[webhacking.kr] Challenge 17 (0) | 2019.06.13 |
[webhacking.kr] Challenge 16 (0) | 2019.06.08 |
[webhacking.kr] Challenge 14 (0) | 2019.06.06 |