필자는 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와 같은 문제풀이를 할 수 있다.


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

+ Recent posts