🐘
OWASP ZAPでサブドメイン&外部通信ありのlocalhostの通信をキャプチャする
TL;DR
次の3ステップの設定が必要です。
- Chromeのプロキシ設定
- localhostのサブドメインを解決する設定
- OWASP ZAPのサーバー証明書を解決する設定
なお、Firefoxを用いる方法は、外部サービスとの通信で躓いてしまったので記事にしていません。
シーケンス解説
設定手順
Chromeのプロキシ設定
検索した限り、3通りのメジャーな方法があります。
- Chromeの設定でプロキシサーバーを設定し、同時にChrome起動時変数でLocalhostへの通信をバイパスしないように設定
- Proxy SwitchyOmegaで設定
- Proxy SwitchySharpで設定
Proxy SwitchySharpを用いると、Chromeの起動時変数を触らずにアドオン設定画面から<-loopback>
(バイパス対象からループバック通信を除外する)設定が可能です。
詳細は画像をご覧ください。
localhostのサブドメインを解決する設定
次の2通りの方法があります。
-
/etc/hosts
を編集する -
Dnsmasq
のようなDNSサーバーをローカルに立てる
もしかしたら、「localhostのサブドメインって、なにも設定しないでも通信できているよ?」と思うかもしれません。Chromeの場合は自動で解決してくれるようなのですが、FirefoxやOWASP ZAPはOSのデフォルト設定を用いているようで、かつOSのデフォルト設定では解決してくれません。それで、追加設定が必要なんですね。
具体的な設定方法は割愛します。
OWASP ZAPのサーバー証明書を解決する設定
OWASP ZAPの設定から、証明書を適当なフォルダに保存します。
次いで、Keychain AccessのSystemに対して証明書をドラッグアンドドロップで登録し、TrustをAlways Trustに設定します。
以上で設定は終了です。
Discussion