WarGame/Lord of SQL Injection

[LOSI] Lord of SQL Injection Level 6 - DarkElf

지난 시간 우리는 공백을 우회하는 방법을 알아보았다. 이번에 만나볼 몬스터는 DarkElf로(헤으응 나 죽어), 이 몬스터는 논리 연산자를 필터링한다.

<출처 : 아마존 https://www.amazon.com/Max-Factory-Lineage-II-Figure/dp/B00CRSF4QS >


코드

필터링되는 글자중 or, and와 같은 그간 우리가 써오던 논리 연산자들이 있다. 보통 다음의 해답으로 떠올렸을 것이다.

Answer Url? : los.rubiya.kr/chall/XXXX.php?pw=1%27%20or%20id=%27admin%27--%20;

자축하자 우린 걸러졌다.


해결방법

Answer Url : los.rubiya.kr/chall/XXXX.php?pw=1%27%20%7C%7C%20id=%27admin%27--%20;

프로그래밍 언어를 공부한 사람은 알겠지만 문법적으로 or와 and를 의미하는 기호가 있다. 바로 파이프(||)와 앤드(&&)이다. DB 또한 이 연산자들을 논리 연산자로 받아들이기에 이 연산자를 url encode 해서 요청하면 해결할 수 있다.

1. & : AND기호, urlencode %26 값을 가진다.
2. | : OR기호, url encode % 7C값을 가진다.


이렇게 저번시간 Wolfman과 이번 시간 Darkelf를 상대하며 우회 기법 중 몇 가지를 알아보았다. 다음 만남 볼 몬스터는 우리의 비장의 무기인 Blind SQL Injection이 필요하다. 저번에 내용을 충분히 숙지한 사람은 가벼운 마음으로 다음 관문에서 만나도록 하자