Web_Hacking/LOS
[LOS] vampire
MitNy
2017. 8. 21. 15:36
<?php
include "./config.php";
login_chk();
dbconnect();
if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
$_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 = @mysql_fetch_array(mysql_query($query));
if($result['id'] == 'admin') solve("vampire");
highlight_file(__FILE__);
include "./config.php";
login_chk();
dbconnect();
if(preg_match('/\'/i', $_GET[id])) exit("No Hack ~_~");
$_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 = @mysql_fetch_array(mysql_query($query));
if($result['id'] == 'admin') solve("vampire");
highlight_file(__FILE__);
?>
vampire 문제는 id에 admin이 들어오면 공백으로 바꿔버린다. 아래 str_replace 때문이다.
$_GET[id] = str_replace("admin","",$_GET[id]);
이렇게 id=admin 을 해버리면 쿼리문 안의 id에는 아무것도 들어있지 않게 된다.
이 문제도 대소문자로 우회해 풀 수 있다.
Admin
ADMIN
aDmin
등등.. 한글자 또는 전체를 대문자로 바꿔버리면 된다.
vampire 클리어!