Hebikuzure's Tech Memo

2012年7月23日

システム プロキシを変更せず Fiddler を起動する

Filed under: Internet Explorer — hebikuzure @ 7:04 PM

土曜日の「まっちゃ445勉強会」の時に @hasegawayosuke さんと話していて、ローカルで Burp Proxy などと組み合わせて多段プロキシを構成したい時、Fiddler を普通に起動すると Windows のシステム プロキシを変更してしまうので、クライアント –> Burp –> Fiddler という構成にできないけど、システム プロキシの変更なしに Fiddler を起動できないの? って話になりました。
で、「Debugging with Fiddler」にきっと載っていると思って調べたら、やっぱりありました。

fiddler2 /noattach

のように /noattach オプションを付けて起動すると、システム プロキシの設定を変更せず Fiddler を起動することができました。

image image
(左: オプションなしで Fiddler を起動した場合のプロキシ設定 右: /noattach オプションを付けて Fiddler を起動した場合のプロキシ設定)

多段プロキシを構成する場合だけでなく、特定のアプリケーションからのトラフィックだけ Fiddler に向かわせたい場合にも使えますね。(この部分、追記を参照してください)


(2012/07/24 追記)

システム プロキシとは別に独自にプロキシを設定できるアプリケーションであれば、Fiddler がシステム プロキシとして登録されていても、

アプリケーション –> 別のローカル プロキシ –> Fiddler –> システム プロキシで指定されたプロキシ

という構成が可能になるのですが、IE の場合は必ずシステム プロキシを利用しますので (と言うか IE の設定がシステム プロキシになるので) 、上のような構成を取ることができません。
これは Fiddler が既定では (Fiddler の起動前に) システム プロキシで指定されていたプロキシにアップストリームする設定になっているからです。つまり IE で別のローカル プロキシを利用するように構成した状態で Fiddler を起動すると、Fiddler はそのローカル プロキシにアップストリームしてしまうのです。

これを回避して Fiddler のアップストリームをシステム プロキシ以外に向ける方法は二つあります。

  • Tools -> Fiddler Options -> Connections -> Chain to upstream gateway porxy  を無効にする
    この設定をすると、Fiddler はシステム プロキシとして設定されていたプロキシを利用せず、すべてのトラフィックを Direct として、つまりプロキシを利用せずに送受信します。IE と Fiddler の間に別のプロキシを挟み、Fiddler からは直接上流に接続する場合はこの構成で良いでしょう。
  • x-overrideGateway SessionFlags を利用する
    Fiddler SessionFlags に解説がありますが、FiddlerScript で x-overrideGateway を設定すると、Fiddler が利用するプロキシを構成できます。
    FiddlerScript の OnBeforeRequest 関数内で、
    oSession["x-overrideGateway"] = "Host:Port";
    のようにプロキシ サーバーのホスト名 (または IP アドレス) とポート番号を指定すると、それがアップストリーム プロキシとして利用されます。
    この方法を使えば、Fiddler のアップストリームをさらに別のプロキシに向けることができます。

いずれの方法共に、「Debugging with Fiddler」にも載ってました。これで複数のプロキシを組み合わせて利用することができますね。

WordPress.com で無料サイトやブログを作成.

%d人のブロガーが「いいね」をつけました。