セキュリティについての質問です。http://www.pc462.com/mametisiki.html にあるような union select CONCAT(0x27,0x7c,0x5f,0x7c) のようなアクセスはどのような意味があるのでしょうか? このCONCAT(0x27,0x7c,0x5f,0x7c)があるとどんなことに注意しないといけないのでしょうか? 

回答の条件
  • URL必須
  • 1人3回まで
  • 13歳以上
  • 登録:2012/03/30 14:37:00
  • 終了:2012/04/06 14:40:02

回答(1件)

id:hissssa No.1

hissssa回答回数423ベストアンサー獲得回数1272012/03/30 16:25:27

ポイント100pt

このアクセスは、いわゆるSQLインジェクションと呼ばれる類の攻撃です。データベースと連動して動作するWebアプリケーションサイトにおいて、アクセスURL内の引数にSQLデータベースのコマンドを埋め込む事で、サーバの誤動作による障害や隠された情報の取得を狙う物です。
http://ja.wikipedia.org/wiki/SQL%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3

現在のインターネットに公開されるWebサイトでは、この手のSQLインジェクション攻撃に晒される可能性は考慮されてしかるべきなので、このようにURLにコマンドを埋め込んでもデータベースに渡す前にチェックするのが当然になっています。よってきちんと作られたサイトなら何も起こりませんが、作りの甘いサイトだとチェックが充分でなく、障害や漏洩に繋がる場合が存在します。

ただ、この「union select CONCAT(0x27,0x7c,0x5f,0x7c)...」というアクセスは、SQL文の体をなしていません。CONCATという関数は多くのSQLサーバソフトで対応していますが、CONCAT(0x27,0x7c,0x5f,0x7c)という記述は、OracleやMS-SQLだと単にエラーになります。MySQLなら「'|_|」という文字列に置換されて処理されますが、これだけでは単にデータベースアクセスがエラーになるだけで、たとえチェックの甘いサイトでも特に障害や情報漏洩には繋がりません。

おそらくは、SQLインジェクション攻撃を行おうとして失敗した例ではないかと思われますが、あるいはこの攻撃を多数のサイトに送りつけてエラーの出方を調べることで、セキュリティチェックの甘そうなサイトを探す目的なのかも知れません。

他2件のコメントを見る
id:hissssa

失礼しました。確認してみたらMS-SQLではそもそもCONCATという関数は実装されていませんでした。ますます攻撃としては無意味という事になりますが。

2012/03/30 17:16:59
id:fiwa

ここに"Odd SQL Injection Attack"(奇妙なSQLインジェクション攻撃)というエントリを書かれている方がいました。
http://secshoggoth.blogspot.jp/2009/03/odd-sql-injection-attack.html

ここでもInjectionの文字列はまったく意味をなさないので、だいたいhissssaさんと同じような結論になったようです。

1. サイトの脆弱性を見るためにSQLエラーを起こすことを意図したものか。しかしそれなら短期間になぜこんなに大量に送りつける必要があるのか?
2. 攻撃者はIDS/IPSを避けようとしたがミスをした
3. 攻撃者は自分がやろうとしていることが全くわかっていない

2012/03/30 21:12:04

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません