본문 바로가기
3. 웹 애플리케이션 취약점 진단/Lord of Sql Injection

lord of sql injection 25번 - green_dragon

by Robert8478 2023. 12. 22.

이번에는 쿼리가 두개가 들어가있는 문제이다. 우선 \를 활용해 뒤에 구문을 넣어보았다.

이런 방식으로 넣어주면 되는데 우선 id='admin'을 호출해야하는데 ' 와 "가 필터링 되어있어 hex값으로 호출해보자.

그런데 해결되지 않았다. 아무래도 첫번째 쿼리에있는 테이블에 admin 자체가 없는듯 하다.
그러면 두번째 쿼리에 있는 곳에서 찾아야할듯 싶다.
두번째를 호출하기 위해 union select를 사용해보았다.

union select 1,2 로 불러오니 두번째 쿼리가 불러와졌다.
여기서 두번째 쿼리에 아까 첫번째에서 했던것처럼 id에 \를 넣어주고 pw에 union select 0x61646d696e--+- 을 넣어주면 될것같다.
https://www.branah.com/ascii-converter

 

ASCII Converter - Hex, decimal, binary, base64, and ASCII converter

Convert ASCII characters to their hex, decimal and binary representations and vice versa. In addition, base64 encode/decode binary data. The converter happens automatically.

www.branah.com

 

필터링을 우회하기 위해  hex값으로 변환했다. 제대로 값이 나오게 하기 위해 convert white space에 체크하고 remove 0x
에도 체크해야한다. 나온 값에 앞에 0x 만 붙여주면 된다. \는 0x5c가 나왔고 union select 0x61646d696e--+- 는 0x756e696f6e2073656c656374203078363136343664363936652d2d2b2d 라는 값이 나왔다.

그렇게 쿼리가 잘 들어갔는데 아직 작동이 안된다. 그래서 주석을 #으로 변경해보았다.
0x756e696f6e2073656c656374203078363136343664363936652d2d2b2d 대신
0x756e696f6e2073656c6563742030783631363436643639366523으로 대신 넣어주었다.

그렇게해서 클리어