回答:
mitmproxyを試してください。
mitmproxyは、HTTP対応のSSL対応の中間者プロキシです。トラフィックフローをオンザフライで検査および編集できるコンソールインターフェイスを提供します。
mitmdumpはmitmproxyのコマンドラインバージョンであり、同じ機能を備えていますが、ユーザーインターフェイスはありません。HTTP用のtcpdumpを考えてください。
localhostのポート4000でリッスンしているサンプルのJekyll Bootstrapアプリをセットアップします。トラフィックを傍受するには、次のようにします。
% mitmproxy --mode reverse:http://localhost:4000 -p 4001
次に、Webブラウザー(http://localhost:4001
)からポート4001でmitmproxyに接続します。これにより、mitmproxyが次のようになります。
その後、任意のGET
結果を選択して、それに関連するヘッダー情報を表示できますGET
。
状況によっては、着信HTTP要求を受け入れ、発信HTTPS要求を行うプロキシを使用できます。例として、git
とgithub.comの間のトラフィックをキャプチャしたかった。私はmitmproxyを使用しました:
mitmproxy -s httpser.py
どこhttpser.py
ですか:
def request(context, flow):
flow.request.scheme = 'https'
flow.request.port = 443
それから私は次のgit
ように走りました:
export http_proxy="http://127.0.0.1:8080/"
git clone http://github.com/oxplot/difftr
wireshark
listen on を使用してlocalhost
、プレーントラフィックをキャプチャできます。プロキシがなければ、githubはgit
HTTPSを使用するようリダイレクトします。
mitmproxy
/mitmdump
tcpdump
HTTPSに相当するのはmitmdump
です。手順は次のとおりです。
mitmproxy
パッケージをインストールします(macOS:)brew install mitmproxy
。次のコマンドでmitmproxy CA証明書をインストールします。
$ mitmdump --mode reverse:http://mitm.it/ -p 8080
$ wget --content-disposition http://localhost:8080/cert/pem
$ open mitmproxy-ca-cert.pem
# Open, install and mark the certificate as trusted.
次に、リバースプロキシをテストする方法に関する簡単なテストを示します。
mitmdump --mode reverse:https://example.com/ -p 4433
。別のシェルで、次を実行しますcurl https://localhost:4433
。
これで、ページのソースとmitmdump
コマンドが次のような出力を生成するはずです。
Proxy server listening at http://*:4433
[::1]:49446: clientconnect
[::1]:49446: GET https://example.com/ HTTP/2.0
<< 200 1.24k
[::1]:49446: clientdisconnect
すべてのトラフィックについて、次を実行します:mitmdump
またはmitmproxy
。
詳細については、mitmproxy
ドキュメントのページをご覧ください。
macOS を使用している場合、ホスト間のすべてのHTTPおよびSSL / HTTPSトラフィックを表示できるCharles Proxyアプリ(GUI)もあります。