훈훈훈

Lord of SQL injection(LoS) - 3. Goblin 본문

정보보안/웹 해킹 문제

Lord of SQL injection(LoS) - 3. Goblin

훈훈훈 2018. 10. 14. 23:43




쿼리와 코드를 살펴보자.

쿼리를 보면 id는 guest 값이 전달 되어있고 no에 값을 전달해야되는 것을 볼 수있다.


이제 코드를 살펴보자 


  1.  if(preg_match('/\ |\"|\`/i', $GET[no])) 

     => 싱글 쿼터( ' ) 더블 쿼터( " ) 백 쿼터( ` )를 필터링 하고 있다. 

 

  2.  if($result['id'] == 'admin') solve("goblin") 

     => id=admin 일 때 문제를 풀 수 있다.




임의로 no에 1 값을 넣었을 때 어떤 반응이 나오는지 확인을 해보았다.

"Hello guest"라는 문자열이 출력된 것을 통해 no=1은 guest인 것을 확인할 수 있다.


이제 문제를 어떻게 해결할지 고민을 해보자.


 1.  id = admin 이어야된다.

 2.  싱글쿼터 더블쿼터 백쿼터는 사용 할 수 없다. => id에 admin 값을 전달 할 수 없다.

 3.  따라서 아스키코드표를 참조하여 필터링을 우회하자. 

 



no=0 or id=char(97,100,109,105,110) 을 입력했을 때 문제가 풀리는 것을 확인할 수 있다.

Comments