はまやんはまやんはまやん

hamayanhamayan's blog

vampire [LORD OF SQLINJECTION]

Lord of SQLInjection

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のみ入力するが、以下フィルターがある
    • 'が含まれるとエラー
    • 全部小文字に変換される
    • adminを含むなら削除される

色々やり方はありそうだが、手ごろな所だと、str_replaceは1回しかリプレースしないから、
adadminminでAC