« プレゼンテーション勉強会 | メイン | 【勉強会】BackTrackで(普通に)WPA2のWi-Fiに接続する »

【勉強会】SQLインジェクションとは

SQLインジェクションとは、本来SQLの入力を想定しないパラメータにSQLを埋め込むことで、システムの設計者が意図しない挙動をDBにさせること。
以下、そのもっともシンプルなサンプルです。
いつものことですが、本記事はセキュリティ意識の向上を目的とします。悪用しないでください。

上図のように、IDとパスワードを入力するフォームがあるとします。
てきとうにIDとパスワードを入力します。

当然、IDとパスワードの組み合わせがDBに登録されていなければ、認証エラーになります。

次は、パスワード欄に「password" OR "A" = "A」と入力してみます。

実行されるSQL文は
「SELECT * FROM user WHERE uid = "john" AND pwd = "password" OR "A" = "A"」

となり、テーブル内の全結果が取得されます。


今回の試行では、下記「参考」で挙げているセカンドオーダーSQLインジェクションは成功しませんでした。(エスケープごとDBに入れると、取り出したときもエスケープごと出てくる?)



【勉強会参加者専用 参考URL】 http://pptxshare.sourceforge.jp/trysql/login/



【参考】
セカンドオーダーSQLインジェクション
http://www.atmarkit.co.jp/fsecurity/column/ueno/42.html

トラックバック

このエントリーのトラックバックURL:
http://www.ddhost.jp/mt/mt-tb.cgi/744

About

2013年05月26日 17:01に投稿されたエントリーのページです。

ひとつ前の投稿は「プレゼンテーション勉強会」です。

次の投稿は「【勉強会】BackTrackで(普通に)WPA2のWi-Fiに接続する」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。