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파라미터를 소괄호로 감싸주었는데, 이를 쿼리에서 ")"를 삽입해주어 무력화시켜야 한다.