webhacking.kr 18번

처음 접속 화면부터 sql 인젝션 문제라는 힌트를 주고 있다.

no라는 변수에 값이 존재해야한다.

쿼리문을 살펴보면 chall18 테이블에 id는 guest이고 no는 get으로 전달된no

주석으로 힌트가 있다 admin의 no는 2

id가 게스트이면 geust

id가 admin이어야 풀린다.

입력부분을 살펴보면 입력으로 전달되는 것의 이름은 no이다.

쿼리문에 인젝션하기 위해서

2 or no=2를 넣어주면

select id from chall18 where id='guest' and no=2 or no=2 가 완성되는데

guest의 id는 1이므로 no=2인 값이 선택되게 만드는 것이다.

 

하지만 form에 위와같이 입력을 하게되면

preg_match에 의해서 공백 때문에 no hack이라는 결과가 나오고 만다.

그렇기 때문에 url을 이용해 입력해줘야하는데

url애서 공백을 나타내려면 %09를 입력해줘야한다.

끝!

'문제풀이 > 보안 writeup' 카테고리의 다른 글

webhacking.kr 8번  (0) 2021.03.19
webhacking.kr 27번  (0) 2021.03.18
webhacking.kr 35번  (0) 2021.03.18
webhacking.kr 33번  (0) 2021.03.16
webhacking.kr 16번  (0) 2021.01.21
myoskin