IPA ウェブ健康診断仕様を使ったWebアプリ脆弱性検査(OSコマンド・インジェクション編)
※当サイトにはプロモーションが含まれています。

IPAが公開しているウェブ健康診断仕様の中にあるOSコマンド・インジェクションの診断をやってみます。
- ウェブ健康診断については、以前の記事 IPA ウェブ健康診断仕様とは?で説明しています。
診断内容
ウェブ健康診断仕様.pdf より抜粋

診断する環境
- クライアントOS:OS X
- ブラウザ:Firefox (OWASP ZAPに対するプロキシ設定は済んでいるものとします)
- HTTP通信を記録するツール:OWASP ZAP
- 診断対象となるWebアプリケーション:
- VirtualBoxで導入した OWASP BWA上のDVWA(Damn Vulnerable Web Application)
- OWASP BWAのIPアドレス:192.168.0.50
※ OWASP BWA、DVWA(Damn Vulnerable Web Application) については、こちらの記事 OWASP BWA (The Broken Web Applications) とは? を参照して下さい。
診断対象となるWebページ
DVWAの「Command Execution」ページ(Security Level: low) を診断します。
手順1:環境を用意する
順番に起動していくだけなので詳細は省略します。
1-1. VirtualBoxを起動
1-2. VirtualBox内の OWASP BWA を起動
1-3. OWASP ZAP を起動
1-4. Firefox を起動
手順2:目的のWebページにアクセスする
2-1. OWASP BWAのトップページにアクセスする。
2-1-1. http://192.168.0.50/ にアクセスします。

2-2. DVWAのXSS reflectedページにアクセスする。
2-2-1. “Damn Vulnerable Web Application” をクリックして、DVWAにアクセスするとログインページが表示されます。
2-2-2. Usernameに “admin”, Passwordに “admin” を入力して[Login]ボタンをクリックし、DVWAにログインします。

2-2-3. 画面左の[Command Execution]メニューをクリックして、今回診断を行うページにアクセスします。


手順3:診断を行う
今回の対象となるWebサーバOSは Linux なので、ウェブ健康診断仕様に記載された1つ目と2つ目の検出パターンを入力・サブミットし、そのレスポンスを調査します。
3-1. 検出パターン1
3-1-1. 検出パターン1の文字列「../../../../../../../bin/sleep 20|」を入力して[submit]ボタンをクリックします。 
3-1-2. レスポンスを確認します。
- 入力した文字列が消えた状態で画面が更新されました。
- OWASP ZAPの履歴タブを見ると、レスポンスが返るのに54ms掛かったことが分かります。


3-1-3. 脆弱性の有無を判断します。
- ウェブ健康診断仕様には「20 秒レスポンスが遅くなる」場合に脆弱性有りと判定するとありますが、レスポンスは54msで返ってきましたので脆弱性無しの判定になります。
3-2. 検出パターン2
3-2-1. 検出パターン2の文字列「;/bin/sleep 20」を入力して[submit]ボタンをクリックします。 
3-2-2. レスポンスを確認します。
- 入力した文字列が消えた状態で画面が更新されました。
- OWASP ZAPの履歴タブを見ると、レスポンスが返るのに約20秒(19,986ms)掛かったことが分かります。


3-2-3. 脆弱性の有無を判断します。
- ウェブ健康診断仕様には「20 秒レスポンスが遅くなる」場合に脆弱性有りと判定するとありますので、脆弱性有りの判定になります。
手順4:脆弱性診断の結果
検出パターン2において脆弱性有りの判定となりました。
手順5:対策アドバイス
- 入力値に許可する文字列を限定します(ホワイトリスト方式)。
その他
- 問題点等ありましたらご指摘下さい。
[最終更新日: 2014年3月3日]
広告