LOS(The Lord of the SQLI) 16 - SUCCUBUS

2021. 1. 17. 20:58정보보안/웹 해킹

16번 문제 SUCCUBUS

 

16번 문제인 SUCCUBUS다.

 

필터식을 확인해보면,

id, pw 파라미터 각각에 대해 prob, _(언더바), .(마침표) 및 싱글쿼터를 사용할 수 없다.

 

문제를 해결하기 위해서는 if($result['id'])를 참으로 만족시켜야 하는데, 결국 싱글쿼터를 우회하는 방법밖에는 없다.

 

일반적 싱글쿼터 우회는 어렵지만, 이문제에서는 

id='' and pw='' 로 양쪽 파라미터에 모두 입력이 가능하다.

 

이 경우 사용할 수 있는 방법은 특수문자를 일반 문자로 바꾸는 \(역슬래쉬)이다.

 

파라미터 입력을 통해  id='\' and pw='%23' 를 입력하면

select id from prob_succubus where id='\' and pw='%23' 이 된다.

이를 분석해보면 주석과 \(역슬래쉬) 때문에 id 값은 ' and pw=' 가 된다

그리고 where 절을 참으로 만들기 위해 pw에 || 1=1을 입력하면 문제를 해결 할 수있다.

 

select id from prob_succubus where id='\' and pw='||1=1%23' 

(id가 ' and pw=' 라는 것은 False 이지만 1=1 이 True 이므로 or 연산자를 통해 where절을 True로 만듬)

 

 

 

 

16번 문제 SUCCUBUS Clear !