id를 admin으로 만들면 풀릴 것 같은데 id가 guest로 쓰여있다.
id=admin 식으로 입력하자 역시 id값은 변하지 않았다.
no에 아무거나 입력하고 뒤에 주석으로 id=admin을 날려보았더니 Hello guest를 띄웠다.
no=1 %23id=admin
여러가지로 시도해보다가 "를 입력하면 다음과 같이 뜬다는 것을 알아냈다.
if(preg_match('/\'|\"|\`/i', $_GET[no])) exit("No Quotes ~_~");
이 부분을 보니까 쿼터를 필터링한다. url 인코딩으로 입력해보기로 했다.
"를 %22로 입력해보아도 No Quotes가 뜬 걸로 보아 url 인코딩은 통하지 않는 것 같다.
필터링을 우회할 수 있는 방법을 알아보다가 엄청난 사이트를 발견했다. 심지어 블로그 이름이 rubiya다
아무튼 다음으로는 HEX encoding을 사용해보기로 했다. admin을 hex코드로 변환한 값을 넣어주었다.
no=2 %23id=0x61646d696e
hex값이 그대로 나오는 것을 보고 혹시 #때문에 그런걸까 싶어서 or로 다시 공격해보았더니 성공했다.
더보기
no를 1에서 2로 바꾼 이유는 no=1이 우연히 값이 맞아서 hello guest를 띄운 것을 알게 되었기 때문이다.
no=2 or id=0x61646d696e
'Web Hacking > LoS' 카테고리의 다른 글
[Lord of the SQL] los darkelf (0) | 2021.05.23 |
---|---|
[Lord of SQL Injection] wolfman (0) | 2021.05.18 |
[Lord of SQL Injection] orc (0) | 2021.05.09 |
[Lord of SQL Injection] cobolt (0) | 2021.04.04 |
[Lord of SQL Injection] gremlin (0) | 2021.03.28 |