ブラインドSQLインジェクション

  • 概要
    レスポンスに変化がない場合の、完全なブラインドSQLインジェクション
    について調べたことをメモ。


  • ブラインドSQLインジェクション
    以下2つの種類があるらしい。
    ★通常のブラインド
      ページ上にレスポンスはないが、HTTPのステータスコードやクエリのレスポンス結果を元に判別。

    ★完全なブラインド
      画面・HTTPステータス・クエリのレスポンスなど、いずれの結果にも差異がない場合に、コマンドの出力時間などを利用し判別するもの。


  • よく使用されるコマンド
    ★benchmark(試行回数 , 動作 )(MySQL
      本来は指定したSQLを指定回数だけ実行して処理にかかった時間を測定するためのもの。
      ※webサーバの処理能力を限界まで使用していしまうので注意がいるらしい。

    mysql> SELECT BENCHMARK(1000000, MD5(1));

      ※MD5('文字列' or 列名) :MySQLMD5を使用するためのコマンド。
      
     参考サイト:https://www.qoosky.io/techs/3a369dd466

    ★pg_sleep(seconds)(PostgreSQL
      ()内の数字の秒数だけコマンド実行を遅らせる。

    ★WAIT FOR DELAY '0:0:10'
      '時間:分:秒'の指定ができる。→ '時間:分:秒:xx'で1秒以下の指定も可。
    参考サイト:SQL Injection Cheat Sheet