WebGoatを用いたSQLインジェクション #04
LAB: SQL Injection
WebGoatの「String SQL Injection」及び「Numeric SQL Injection」を終えたら,次に「LAB: SQL Injection」に取り組みます.この問題は全部で4つのステージで構成されています.
- stage1
- stage2
- stage3
- stage4
Stage1
問題
ステージ1ではString SQL Ingectionを用いてユーザー認証を回避することが目標です.「Goat Hills Financial Human Resources」という架空の会社でのサービスで.社長である「Neville」という人のアカウントに正しいパスワードなしでログインします.Nevilleのアカウントでは,全プロフィールを閲覧できたり,検索・アカウント作成・アカウント消去ができます.
今回も手法としては「String SQL Injection」と同じなので試して見ましょう.
解答
- ユーザー名を「Neville Barthlomew」にする.このとき,パスワードは入れず,Loginボタンも押さない.
- firefoxのメニューバーから,ツール「Tamper Data」を選択する.
- 出てきた「Tamper Data - Ongoing requests」のウィンドウの左上にある「Start Temper」ボタンを押す.
- 出てきた「Tamper with request?」のウィンドウの「Tamper」ボタンをクリックする.
- 出てきた「Tamper Popup」のウィンドウをみるとパスワードを入力するフィールドがあることがわかる.ここに「String SQL Injection」と同じように「x' OR 'a'='a」を入力し,「ok」を押す.
- 正解を知らせる表示が出ることを確認する.実際に,全スタッフのプロフィールを表示・作成・削除できることを確かめる.
※ 他のポップアップが出た場合は,「temper」→「ok」の順でポップアップを消す.他のリクエストをtamperするか否かを聞いているだけのポップアップなので,対応しない場合処理が止まってしまう.
Stage2
問題
Parameterized Query #1 (解説省略)