こんにちは、hitokiyoshiです
以下に書いてある情報を実際に自分の所有しているWebサイト以外に実行すると不正アクセス法に触れることになります。また当Webサイトは一切の責任を追いません。くれぐれも自己責任でのみ行ってください。
Webサイト環境
MySQL
そもそもSQLインジェクションとは何か
SQLインジェクションとはWebサイトに対して通常のユーザーによる操作では行われないはずのSQL文をWebサイトに実行させデータベーステーブルの改変や機密情報の取得を行います。
攻撃者はどのようにSQLインジェクションを実行するのか
ここが一番面白いポイントでしょう。
例えば、TwitterのようなWebサイトで自分の過去の発言の機能を見ることができるサイトがあったとします。
そこで、自分の発言を検索する検索バーがあるとします。
そこで検索バーに以下のように入力します。
すると指定されたデータベースのテーブルの全データが削除されます。
ユーザーのパスワードを盗み出す
今度はSQLインジェクションを使ってユーザーのパスワードを盗み出しましょう。
userテーブルが存在すること、またそのuserテーブルにnameとpasswordというカラムがあることを予想して、
検索バーに以下のように入力して検索します。
するとSQL Injectionの脆弱性のあるWebサイトではいとも簡単に他のユーザーの名前とパスワードを取得できてしまいます。