PortSwigger Web技術 WritesUp セキュリティ

PortSwigger-Username enumeration via different responses(OWASP ZAP WritesUp)

writesupIimage

PortSwiggerのWeb Security Academ>Authentication Vulnerabilities>Password-basedのUsername enumeration via different responsesはBurpSuiteでの回答が想定されています。

ただ、OWASP ZAPでも回答できますので、そのWritesUpを紹介します。
OWASP ZAPはすでにローカルプロキシとして利用できる前提となります。

ラボにアクセスをします。

ログインを試します。ブラウザ側で必須項目が入力されていないと、「Log in」をクリックしてもサーバにユーザ情報は送信されません。

(Log inをクリックしていますが、通信が発生していないことがわかります。)

適当にUsernameとPasswordを入力して、「Log in」をクリックします。

メソッドがPOST、usernameとpasswordのフォームデータの値から当該のリクエストがログイン情報を送信していると考えられます。

/loginへのPOSTリクエストでログイン情報を送信すればいいことがわかります。

OWASP ZAPを起動

以下をクリックして、「Selected」をクリックします。

「user」を選択して、Fuzz Locationsの「追加」をクリックします。

以下の「追加」をクリックします。

タイプをStringsにしてuserの候補一覧を貼り付け、できたら、「追加」をクリックします。

passwordも同様に行います。

「Start Fuzzer」をクリックします。

処理が完了したら、結果の中から成功したものを探します。
レスポンスヘッダサイズやレスポンスボディサイズ、ステータスコードなどが異なっているものがあるので、これがアカウント情報だと推測が付きます。

これを最後に入力することで、クリアすることができます。

PortSwiggerはBurpSuiteを使う想定なのですが、OWASPZAPでも同様のことができることがわかります。