OWASP ZAPのExternal redirect診断は何をしているのか?
※当サイトにはプロモーションが含まれています。
公開日:
更新日:
OWASP ZAPのActive Scanで行っている脆弱性検査の1つである「External redirect」が何をしているのか説明します。(v2.2)
検査対象の脆弱性
CWE
WASC
ソースコード
- TestExternalRedirect.java - zap-extensions
- 検査しているメソッド
処理概要
- 1つのURLに対して External redirect の検査を実行するために、専用のスレッドが生成されて処理がスタートします。
- このURLはスパイダー等で既にアクセス済みのはずです。
- 参照:HostProcess.java
- このURLに付随していた各パラメータに対して順番に以下を処理します。
- URLパラメータやPOSTアクセスによるパラメータ等を取得する処理は以下の参照先のソースコードで行っています。
- TestExternalRedirectクラスのscanメソッドが以下の引数を受け取ります。
- 第1引数:HttpMessage msg
- スパイダー等で検査対象URLにアクセスした時のデータ
- 第2引数:String param
- 検査対象パラメータ名
- 第3引数:String value
- 検査対象パラメータ値
- 第1引数:HttpMessage msg
- URLに1度アクセスします。
- レスポンスがリダイレクトを含まない場合は、検査すべきURLではないので処理を終了します。
- 参照:TestExternalRedirect.java #94
- そのレスポンスのLocationヘッダを取得します。
- Locationヘッダの値がなければ処理を終了します。
- 元のURLにもう一度アクセスします。その際、パラメータ値として “http://www.owasp.org” をセットしておきます。
- 条件によっては “www.owasp.org” が使用されます。
- 参照:TestExternalRedirect.java #138
- レスポンスのLocationヘッダに6で指定したURLがセットされていれば脆弱性有りと判定します。
その他
- v2.3ではかなり処理が変わりそうです。
[最終更新日: 2014年4月8日]
広告
