SQLインジェクションによる攻撃の兆候
最近、サーバーのログにエラーが残っていて、以下のような文字がURLに書かれているみたいでした。(ほかにも類似のものがいくつもありました)
'%20and%201=1%20and%20''='
URLエンコードされているので、デコードしてみると以下のような感じです
' and 1=1 and ''='
プログラムの中ではSQLのセレクト文のWHERE句で使われる文字列を想定しての攻撃なのでしょう。
プログラム側が
"SELECT A,B,C FROM A_TABLE WHERE B = '" & instr & "'"
のようにしてあると、最終的に
SELECT A,B,C FROM A_TABLE WHERE B = '' and 1=1 and ''=''
というSQL文になり、エラーなく通過してしまいます。
攻撃者はエラーが出ることなく、かつ、「' and 1=1 and ''='」という文字列そのものが検索されないかどうかチェックしているのでしょうね。
これが成功すると、SQLのサニタイジングがうまくいっていないということになるので、攻撃の的になりそうです。
URLだけじゃなく、プレゼントの投稿フォーム、BBS、検索フォーム・・・入力欄のあるページにそういった文字列を投入して試すようです。
今のところの攻撃元は中国のほうが多いようですが、もちろん中国からといっても経由しているだけで本当の身元は不明です。
・・・・というわけで、サイトの管理をされている方など、お気をつけください。
ご報告まで。