Web Application Security Memo

ウェブセキュリティに関するメモ書き

OWASP ZAPのExternal redirect診断は何をしているのか?

※当サイトにはプロモーションが含まれています。

公開日: 更新日:

OWASP ZAP

OWASP ZAPのActive Scanで行っている脆弱性検査の1つである「External redirect」が何をしているのか説明します。(v2.2)

検査対象の脆弱性

CWE

WASC

ソースコード

処理概要

  1. 1つのURLに対して External redirect の検査を実行するために、専用のスレッドが生成されて処理がスタートします。
    • このURLはスパイダー等で既にアクセス済みのはずです。
    • 参照:HostProcess.java
  2. このURLに付随していた各パラメータに対して順番に以下を処理します。
    1. URLパラメータやPOSTアクセスによるパラメータ等を取得する処理は以下の参照先のソースコードで行っています。
    2. TestExternalRedirectクラスのscanメソッドが以下の引数を受け取ります。
      • 第1引数:HttpMessage msg
        • スパイダー等で検査対象URLにアクセスした時のデータ
      • 第2引数:String param
        • 検査対象パラメータ名
      • 第3引数:String value
        • 検査対象パラメータ値
    3. URLに1度アクセスします。
      • レスポンスがリダイレクトを含まない場合は、検査すべきURLではないので処理を終了します。
      • 参照:TestExternalRedirect.java #94
    4. そのレスポンスのLocationヘッダを取得します。
    5. Locationヘッダの値がなければ処理を終了します。
    6. 元のURLにもう一度アクセスします。その際、パラメータ値として “http://www.owasp.org” をセットしておきます。
    7. レスポンスのLocationヘッダに6で指定したURLがセットされていれば脆弱性有りと判定します。

その他

  • v2.3ではかなり処理が変わりそうです。

[最終更新日: 2014年4月8日]

広告