old-50 -- SQLi (Unicode)
...
...
<h1>SQL INJECTION</h1>
<form method=get>
id : <input name=id value='guest'><br>
pw : <input name=pw value='guest'><br>
<input type=submit> <input type=reset>
</form>
<?php if ($_GET["id"] && $_GET["pw"]) {
$db = dbconnect();
$_GET["id"] = addslashes($_GET["id"]);
$_GET["pw"] = addslashes($_GET["pw"]);
$_GET["id"] = mb_convert_encoding($_GET["id"], "utf-8", "euc-kr");
foreach ($_GET as $ck) {
if (preg_match("/from|pw|\(|\)| |%|=|>|</i", $ck)) {
exit();
}
}
if (preg_match("/union/i", $_GET["id"])) {
exit();
}
$result = mysqli_fetch_array(
mysqli_query(
$db,
"select lv from chall50 where id='{$_GET["id"]}' and pw=md5('{$_GET["pw"]}')"
)
);
if ($result) {
if ($result["lv"] == 1) {
echo "level : 1<br><br>";
}
if ($result["lv"] == 2) {
echo "level : 2<br><br>";
}
}
if ($result["lv"] == "3") {
solve(50);
}
if (!$result) {
echo "Wrong";
}
} ?>
...Last updated