- blogs:
- cles::blog

忍び寄るSQLインジェクションの影
セキュリティホール memoにゴルフダイジェスト・オンラインで不正アクセス被害発生というエントリが載っていたのでいろいろと調べていたらSQLインジェクションを行うボットついてLACが注意喚起しているエントリがありました。
【CSL】CSL緊急注意喚起レポート~新手のSQLインジェクションを行使するボットの確認~ | LAC
新手のSQLインジェクション攻撃を実行するボットを確認しました。このボットに関しては海外1でも報告されています。この攻撃は、マイクロソフト社製のWebサーバIIS/ASP/ASP.NET上で開発されたWebサイトを狙ってデータベースの改ざんを行います。改ざんを狙うボットや攻撃はこれまで数多く存在していました。今回、注意喚起を行う理由は、攻撃方法が、これまでほとんど観測されていない手法だからです。
この注意喚起レポートで取り上げられているGETリクエストの例に何か見覚えがあるので、WAFのログを確認してみたら、Cookie経由ではありませんが同様と思われるSQLインジェクション攻撃をしようとした形跡が残っていました。
† 実際のログ
これはGETリクエストですが、おそらくLACの取り上げているリクエストに限りなく近いものですよね。デコードしてみるとこんな感じのSQLが出てきました。
MS SQL Serverをほとんど扱ったことがないので、正確には分かりませんが、システム表からユーザーが定義したテーブルで、カラムの型が文字列型のものを探し出して、片っ端からJavaScriptを埋め込んでいく処理をするようです。メルマガの本文をDBなんかで管理していたりすると、不正なURLを含んだメールを配信してしまう可能性もありますね。
怖い世の中になったものです。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/2750
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。

ひたすらサニタイズ&クエリ発行前に必ずphpの場合、mysql_escape_string 若しくは mysqli_real_escape_string
php pdo の場合はquote
とかを必ず通るように設計するとか、
"とか'とか;とかその他制御コードをそのままいれず、必ずhtmlエンティティ変換で入れるとか
無理な場合は使用できない文字として削除してしまった方が良いかも知れないですね。
phpだけでも頭痛いですが、言語がばらばらだったりするともう目も当てられないですね。。。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(112515)
3 . 年次の人間ドックへ(111981)
4 . 2023 年分の確定申告完了!(1つめ)(111552)
5 . 三菱鉛筆がラミーを買収(111431)