SQL injection/webhacking

Webhacking 27번

ys.k 2022. 4. 18. 10:28

포스팅에 앞서 내용이 틀릴 수도 있으며, 해당 부분 지적은 감사히 받겠습니다.

27번 문제이다.

sql injection문제이다.

소스코드부터 보자.

파라미터로 no를 받으며 #, select, (, 공백, limit, =, 0x 등이 필터링되어있다.

또한 쿼리문은 select id from chall27 where id= -'guest' ~~ 로 id값이 guest로 고정되어있다.

id가 admin 이면 문제가 해결된다.

이 문제의 경우 id가 guest로 고정되어있기에 no에 거짓 값을 넣어 where문 조건을 거짓으로 만들어 무력화시키고

새롭게 id에 admin을 주입시켜줌으로 문제를 해결할 수 있다.

admin의 no값은 2라고 힌트를 줬다.

문제를 풀어보자

쿼리 : ?no=0)or%09id%09like"admin"and%09no%09like"2"--%09-

문제 해결!

시행착오

1. php내부의 쿼리 부분에 no파라미터를 소괄호로 감싸주었는데, 이를 쿼리에서 ")"를 삽입해주어 무력화시켜야 한다.