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

+ Recent posts