WEBクライアントの自動化について
特定のWEBサーバと通信するクライアントのアプリを作成しようとした時の、パケットキャプチャの仕方をまとめる。
- Burp
- Fiddler
とりあえずFiddlerのバージョンが4(ver.4.6)になっていたので、情報をまとめる。
起動したら、いきなりキャプチャを始める。
- 自マシン以外からもキャプチャする方法
メニューの[Tools]-[Telerik Fiddler Options]を選択し、[Connections]タブ内の[Allow remote computers to connect]にチェックを入れる。
Fiddlerを再起動する。
ウイルス対策ソフトのファイヤウォールを無効にする。
自マシン以外のプロキシ設定を変更する。(ポート8888)
それでもうまくいかない場合は、しばらく待つとOKになった。(謎)
- リストの削除
全選択(Ctrl+A)で削除(Delete)可能。
- SSLの対応
一覧のリストの[Host]欄が「Tunnel to」になっているのはSSL通信をしていてパケットの中身が見えない。
[Tools]-[Telerik Fiddler Options]を選択し、[HTTPS]タブ内の[Caputure HTTPS CONNECTs]と[Decrypt HTTPS traffic]にチェックを入れる。ダイアログが表示されたら[YES]を選択。
証明書を入れないと通信できないがiPhoneでは証明書を入れられなかった。
iPhoneからhttp://
※FiddlerRoot.cerをメールで送ってもインストールできなかった。
- 特定のURLだけをキャプチャ
画面左下の[Capturing]をクリックし、システムプロキシとしてのキャプチャを停止し、個別にプロキシ設定をすればOK。
他にも[File]-[Capture Traffic]やF12キーでもOK
- デコード
「Response body is encoded.Click to decode.」と黄色で表示されていて、文字化けしている場合は、クリックしたら正しく表示される。
あと、ツールバーの「Decode」ボタンを押していると(青枠になる)、それ以降の通信はデコードされて表示される。(既に通信済みのログはデコードされない)
- 特定のセッションをハイライト
「QuickExec」画面左下(Webセッションリストの下)にある黒いテキストボックス。
ここに「?キーワード」を入力すれば、ホスト名やURLにキーワードが入っている個所がハイライトされる。
- リクエストの内容を書き換える
とりあえずここまで