728x90
반응형
100점인 18번 문제를 풀어보자.
다음은 소스코드를 확인해서 힌트를 얻어내보자.
$result['id']가 admin이면 문제가 해결되는 것을 알 수 있다.
no=2이면 id 값이 admin인 것을 알 수 있으므로, SQL을 주입시켜 id가 admin으로 반환되게끔 만들면 된다.
우선 SQL injection을 막기 위한 필터링이 있다. -> | , / , & , select , from , 0x
해당 필터링을 우회하기 위해 \t(tab, %09) \n(개행, %0a)를 이용하여 쿼리문을 짜보기로 하자.
쿼리문 : 2 or no=2
select id from chall18 where id='guest' and no=2 or no=2
결과적으로 이렇게 쿼리문이 작성되게 되는데 연산자 우선순위에 따라 and>or 이므로 해당 쿼리문의 의미는 id가 guest이고 no값이 2인 id를 찾거나 no값이 2인 id 값을 찾으라는 의미이다.
띄어쓰기 부분은 \n(개행, %0a)로 url인코딩하여 주입시키면 문제가 정상적으로 해결되는 것을 확인할 수 있다.
728x90
반응형
'CTF & WarGame > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] 20번 문제 (0) | 2020.03.07 |
---|---|
[webhacking.kr] 19번 문제 (0) | 2020.03.07 |
[webhacking.kr] 17번 문제 (0) | 2020.03.06 |
[webhacking.kr] 16번 문제 (0) | 2020.03.06 |
[webhacking.kr] 15번 문제 (0) | 2020.03.05 |