ローカルプロキシOWASP ZAP でWEBリクエストの編集(改ざん)する

1.OWASP ZAP とは

オープンソースの無償セキュリティツールです。
脆弱性診断に効果を発揮します。
ブラウザとWebサーバの間に立って通信を分析したり(静的スキャン)、
積極的に攻撃的な通信を送って分析したり(動的スキャン)することができます。
本記事では、ブラウザとWEBサーバ間の通信(WEBリクエスト)を一時停止して、内容を編集(改ざん)するブレークポイント機能の使い方を紹介をします。

※対象環境: Windowns10,Java1.8.0(64bit)インストール済み

2.インストール

OWASP ZAP の公式ページから、最新版のインストーラを入手します。
https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project

公式サイトのDownload Zapリンクをクリック

環境に合わせたインストーラ(ここでは Windows 64 Installer)をダウンロード

インストーラを実行

インストールウィザードが起動するので、「次へ」選択

ライセンスを承認して「次へ」選択

標準インストールを選んで「次へ」選択

インストール内容を確認して「インストール」選択

セットアップ完了を確認して「終了」選択

3.起動・環境設定

デスクトップアイコンから OWASP ZAP ツール実行

OWASP ZAPの起動を確認する

メニューバーの「ツール」->「オプション」からオプションダイアログを表示
まずはオプションダイアログメニューの「Local Proxies」を設定します。
ローカルプロキシとして動作させる場合、Adress:は[localhost]にします。
プロキシサービスの使用するTCPポート番号は他サービスと重複しないよう、この例では[8888]にします。

続いて、オプションダイアログメニューの「ブレークポイント」を設定します。
ブレークボタンモード:コンボボックスを「リクエストとレスポンスのボタンを個別表示」に設定します。

最後に、ブラウザのプロキシ設定でOWASP ZAPのサービスを指定します。
firefoxの例では、「ツール」->「オプション」のネットワークプロキシ項目で「詳細設定」を選択します。
「手動でプロキシを設定する」を選択。httpプロキシに[localhost]指定、ポートには、OWASP ZAPに設定した[8888]ポートを設定します。

ここまでの作業で、OWASP ZAP がブラウザとWEBサーバの間に立つローカルプロキシとして動作するようになりました。

4.WEBリクエスト編集

では、実際にWEBリクエスト編集を試してみましょう。
OWASP ZAP メニューアイコンの右矢印[⇒]をクリックします。
矢印の色が緑から赤に変わったら、WEBリクエストのブレークポイントが有効化されています。

編集したいWEBリクエストを、ブラウザから送信させます。この例では、
WEB GOATのログイン用リクエストを編集します。

リクエストが発生すると、WEBサーバに届く前のリクエストをOWASP ZAP がキャッチして、WEBリクエストが編集可能になります。

POSTパラメータのpassword値を変更してみました。
メニューアイコンの右向き三角をクリックすると、キャッチしたリクエストをリリースして、WEBサーバに届けられます。

これで、WEBリクエストの編集(改ざん)することができます。
WEBシステムのテストや、脆弱性診断に活用してください。