없다.
문제에 들어가면 위에 query와 sql명령문이 적혀있고 아래 코드가 나와 있다.

get으로 요청받은 id에 '가 들어가면 No Hack ~_~이라고 나오면서 프로그램이 죽는다. 그리고 get으로 요청받은 id에 strtolower을 한 뒤에 저장하고, id에 admin을 빈 아무것도 없는 것으로 바꾼다.
strtolower는 대문자를 소문자로 바꾸는 함수이다.
이 부분들이 바로 필터링 부분이다.
if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
$_GET[id] = strtolower($_GET[id]);
$_GET[id] = str_replace("admin","",$_GET[id]);
그 다음 query가 나오는데 sql 명령문이다.
sql 명령문은 id를 찾는데 prob_vampire이라는 테이블에 있어야 하고, id가 get으로 요청된 id값이어야 한다.
$query = "select id from prob_vampire where id='{$_GET[id]}'";
그리고 id값이 admin이면 문제가 풀린다.
if($result['id'] == 'admin') solve("vampire");
id값에 admin이 들어가면 문제가 풀리지만, id에 admin을 넣을 수 없다. 그리고 Admin을 이용해서 우회하는 것도 strtolower 때문에 불가능하다. 하지만 다른 우회 방법을 이용하면 문제를 풀 수 있다.
id에 admin 대신에 admadminin을 넣는다. 그러면 필터링에 의해 admin이 지워지면서 admin이 남는다.(admadminin) 그렇기 때문에 문제가 풀린다.
/?id=admadminin

익스플로잇을 넣었을 때 실행될 sql query
select id from prob_vampire where id='admin'