WarGame/Lord of SQL Injection

[LOSI] Lord of SQL Injection Level 17 - Zombie assasin

필자는 Lord of SQL Injection을 포스팅하며, 몬스터의 이미지를 구하고 있다. 아니 좀비 어쌔신은 어디서 이미지를 구한단 말인가? 

 

거두절미하고 코드를 만나보도록 하자.


코드

id과 pw에 strrev()함수가 들어갔다. strrev는 문자열을 뒤집는 함수로 $str = "asdf" 라면 strrev($str)의 결과는 "fdas"가 된다. 또한 addslashes가 들어가서 따옴표들에 역슬래시(\)를 자동으로 붙여주어 이스케이프 시켰다.

 


해결방법

 

Answer Url : los.rubiya.kr/chall/zombie_assassin_eac7521e07fe5f298301a44b61ffeec0.php?id=%22

 

이 문제의 핵심은 addslashes가 strrev에보다 먼저 실행된다는 점이다.

예를들어 ?id="를 입력하면 addslash의 실행결과로 \" 되었다가 strrev로 "\가 된다. 

 

그렇다. \가 뒤에온다!

이를 이용해서  query문의 {$_GET[id]}가 닫히는 작은따옴표를 문자열처리 할 수 있고, succubus와 같은 문제풀이를 할 수 있다.


축하한다. 이 기세에 이어 다음문제로 바로 넘어가 보자