タグ

SQLiとteraccに関するockeghemのブックマーク (3)

  • pg_sleepを使った検査 - teracc’s blog

    徳丸さんの日記(pg_sleepをSQLインジェクション検査に応用する - ockeghem's blog)を読みました。 こういう検査のマニアックな話は大好きです。 このあたりのシグネチャは、私も自作ツール(参考)の検討をしていた際に相当いろいろ悩んで調べましたので、今回はUPDATE文のSET句などにも適用できるような改善の提案をしたいと思います(おろらく既に徳丸さんの頭にあるものだとは思いますが)。 徳丸さんの日記の検査パターンは、以下の値を挿入するものでした。 ' and cast( (select pg_sleep(3)) as varchar) = 'これを少し変えて、以下のようにします。 <文字列型> 【元の値】'||(select pg_sleep(3))||'数値型であれば、以下のようにします。 <数値型> 【元の値】-cast(chr(48)||(select pg_s

    pg_sleepを使った検査 - teracc’s blog
    ockeghem
    ockeghem 2009/11/05
    言及ありがとうございます。select pg_sleep(3)は比較だとキャストが必要なのに、文字列連結だとキャストが要らないのですね。
  • MySQLのエラーメッセージ - 2009-07-03 - T.Teradaの日記

    MySQL環境において、BlindではないSQLインジェクションがあるときに(SQLエラーメッセージが応答に含まれるときに)、欲しいデータをエラーメッセージから得る方法。 mysql> select extractvalue('<a/>',concat('/$',version())); ERROR 1105 (HY000): XPATH syntax error: '$5.1.36-log' こんな感じで使います。 ?vuln_var='-extractvalue('<a/>',concat('/$',version()))-'おそらく、MySQL5.1以上で動きます。 金床さんの(ウェブアプリケーションセキュリティ)には、同じことをload_file関数を使ってやる方法が載ってますが、FILE権限が必要ですし、ちょっと前からその方法自体が使えなくなってます。 (参考)MySQL Bu

    MySQLのエラーメッセージ - 2009-07-03 - T.Teradaの日記
  • 自作検査ツール - SQLインジェクション編 - 2009-05-31 - T.Teradaの日記

    前回の日記からだいぶ日にちが空いてしまいました。 今日は、自作検査ツールのSQLインジェクション用シグネチャについて書きます。 SQLインジェクションの検査シグネチャとしては、以下の5種類を用意しています。 A. SQLエラー検出+簡易なBlind B. Blind 数値型・カラム名等 C. Blind 文字列型 D. 更新系クエリ E. 文字コード系 SQLインジェクションは、かなりの頻度で脆弱性が発見されること、また一般的に危険度の高い脆弱性であることから、シグネチャの種類を多くしています。 それぞれのシグネチャについて、以下で順番に見ていきます。 A. SQLエラー検出+簡易なBlind 最初に試すのはベーシックなパターンです。 イ:【元の値】'"\'"\ … SQLエラーになる ロ:【元の値】''""\\ … SQLエラーにならない ハ:【元の値】'"\'"\ … SQLエラーにな

    自作検査ツール - SQLインジェクション編 - 2009-05-31 - T.Teradaの日記
  • 1