- TDU CTF参加した時に使いましたので、メモります。
- ちなみにFireFoxであれば、以下のエントリを参考にすればok
何がしたいか
- ブラウザ <-> Webサーバ間のHTTP通信を補足し、
- その挙動をみて、自分の好みのパラメタやシグネチャを付加し、
- 改造したパケットを再送信し、それがどういった脆弱性につながるかを観察しようとしました。
- TDU CTFではcookie値を書き換えるために利用したという感じです。
- イメージでいうと、下記のローカルProxyにOWASP ZAPを利用して、上記を実現しようとしました。
OWASP ZAPの設定その1: Proxyの設定
- OWASP ZAPのpreferenceから"local proxy"メニューを選択します
- local上で動くので、Addressはlocalhostを選択します
- Portは利用されていないポート番号を指定しましょう。
- 1024以上なら大体何でもいいのではないでしょうか。
- ブラウザのproxyの向け先を上記にすると、OWASP ZAPが通信の内容をキャプチャします
Chrome側のProxy設定
Proxy SwitchyOmegaのインストール
- Chromeの設定 > 詳細設定 > ネットワーク"プロキシ設定の変更"からプロキシを設定できますが、これをしてしまうと全通信に適用されてしまいます。
- そうなると、OWASP ZAP上のノイズが多くなってしまうので、こちらはやめます。かわりにProxy SwitchyOmegaという拡張機能を使いますので、インストールしてください
Proxy SwitchyOmegaの設定
- ツールバー上に黒いドーナツ上のアイコンがでるので、それをクリックして"Options"ボタンを押します。そうすると設定画面が開きます。
Profiles: Proxyの設定
- 先ほどOWASP ZAPで設定した内容を、Server欄とPort欄に設定します。これでブラウザはOWASP ZAPをプロキシとして、通信を中継させようとします
- 左下の"Apply Changes"ボタンで設定を保存します
Profiles: auto switchの設定
- ここに特定のホスト宛通信をプロキシに向ける、という個別設定ができます。
- 今回は特定ホスト配下の全ページを対象にしたいので、ワイルドカードで指定します。
- 又、ActionにはProxyを指定します。
- 保存を忘れないようにしましょう。
- 尚、条件は複数設定可能ですが、上から順に適用されることを認識ください
Chrome上で設定したプロファイルを有効化する
- ツールバー上のアイコンを押下し、"auto switch"を選択します。
- これで先ほど設定したProfileがChrome上を流れる通信に適用されます。
- これでChrome側の設定は終了です
通信をキャプチャする
- さきほどProxy SwitchyOmegaに設定したホストへブラウザからアクセスします。
- そうすると、OWASP ZAP上でそのパケット情報がキャプチャします。
- この時点では、OWASP ZAPは透過的なプロキシとして動作しているので、特に干渉はしていません。
OWASP ZAPの設定その2: ブレークポイントの設定
- 今回のゴールは改竄したパラメタを送ることにあります。
- そのために、キャプチャされた通信と同じものが発生した場合、それを一旦OWASP ZAP内で止める必要があります。それを実現するための機能が、ブレークポイントです
- キャプチャされたパケット上で右クリックし、"Break..."アイテムを押下します
- これを設定すると、同サイトへの通信をOWASP ZAP上が保留し、改竄できるようになります。
- 設定が済んだら、再度ブラウザから同サイトへアクセスしてみましょう。下記の図のように通信が止められる筈です。
- 上のほうにあるタブの中の"Break"タブが押下されている状態であれば成功
OWASP ZAPで通信改竄
- この状態で右側のペイン内にあるものを編集できます。何かしらのパラメタを改竄してみましょう。
- 例: Cookieヘッダ値の変更
- パラメタ改竄がおわったら、図の上部にある再生ボタンを押します。そうすると改竄されたパケットが対象のサイトへ送信され、レスポンスを受信することができます
- パラメタ改竄の影響は、レスポンスペインタブで確認しましょう。