write-ups/Lord of SQL Injection

[Lord of SQL Injection] Wolfman 풀이

2016. 11. 8. 01:33


Lord of SQL Injection - Wolfman 



Analyze

먼저 이 문제를 분석해보도록 하자. 

이 문제에서는 딱히 이상한 것은 없는데 공백을 막아놓았다. 



Solution

 SQL Injection에는 공백을 우회하는 여러가지 방법들이 있다. 보통 공백은 %20(Space) 로 쓰이지만, 우회할 수 있다. 



파이썬에 string.whitespace 를 보면 공백으로 사용할 수 있는 문자들이 있다. 


1. ()         괄호        //근데 여기서는 괄호를 필터링하므로 다른 것으로 대체하는 것이 좋겠다.

2. %09    탭

3. /**/     주석

4. %0a    개행문자

5. %0b    캐리지 리턴

6. %0c    Form Feed 


 괄호는 select()1; 이런식으로 사용되지 않고 select(1); 이런식으로 사용한다. 괄호로도 충분히 필터링을 우회할 수 있다. 


 공백(%20) 대신 위의 문자를 쓰거나 OR 연산자를 "||" 이걸로 바꿔서 공백을 아예 안 생기게 하는 또다른 방법도 있다. 



 - http://los.eagle-jump.org/wolfman_f14e72f8d97e3cb7b8fe02bef1590757.php?pw=1'||id='admin


 - http://los.eagle-jump.org/wolfman_f14e72f8d97e3cb7b8fe02bef1590757.php?pw=1'%09or%09id='admin


....