カテゴリー:
セキュリティ
閲覧数:961 配信日:2014-05-26 21:17
攻撃例2
セミコロン挿入で、既存SQL文を強制的に分割する
・その後、任意のSQL文を実行されてしまう恐れがある
・例えば、DELETE文を実行されると、userテーブルレコードは全件削除されてしまうこともあり得る
ユーザーからのデータ入力例
・$input_userid … dummy
・$input_password … ';DELETE from user WHERE 'A'='A
SQLインジェクションされたSQL文
・2つのSQL文が続けて実行されることを意味する
SELECT * FROM user WHERE userid='dummy' AND password='';
DELETE from user WHERE 'A'='A'
SQLインジェクションされたSQL文の意味
・パラメータに「;」を含ませることで、SQL文を強制的に一旦終了させている
・この後に任意のSQL文を追加している
・つまり、2つ以上のSQL文を連続実行させることが可能
・1つ目のSELECT文は実行されるが無害
・2つ目のDELETE文で、全件削除を実行している
ポイント
・SQL文におけるセミコロン「;」は、ステートメントを分割するデリミタである
・この「;」を使って複数のSQL文を強制的に実行させることができる