필자는 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와 같은 문제풀이를 할 수 있다.
축하한다. 이 기세에 이어 다음문제로 바로 넘어가 보자
'WarGame > Lord of SQL Injection' 카테고리의 다른 글
[LOSI] Lord of SQL Injection Level 19 - xavis (0) | 2021.04.17 |
---|---|
[LOSI] Lord of SQL Injection Level 18 - Nightmare (0) | 2021.04.17 |
[LOSI] Lord of SQL Injection Level 16 - Succubus (0) | 2021.04.17 |
[LOSI] Lord of SQL Injection Level 15 - assassin (0) | 2021.04.14 |
[LOSI] Lord of SQL Injection Level 14 - Giant (0) | 2021.04.13 |