mitmproxyを使って通信を見る

2019年11月7日木曜日

mitmproxy python windows 技術系

t f B! P L

mitmproxy

プロキシとして動作して通信を見るツールです

何ができる?

  • httpやhttpsの通信を見る
  • レスポンスやリクエストを書き換える
  • pythonが使える

何に似てる?

fiddler

環境

  • Python3.7
  • Windows10
  • Google Chrome
  • 2019-11-07

インストール

公式を参考にpipでインストールします
python3.6以上を要求するようです
https://mitmproxy.org/
https://docs.mitmproxy.org/stable/overview-installation/#installation-on-windows-via-pip3
pip install mitmproxy
インストールが終わったらmitmwebを起動します
mitmproxyはWindows環境だと動作しません
(_venv) E:\projects\testcode\mitmproxy>mitmproxy
Error: mitmproxy's console interface is not supported on Windows. You can run mitmdump or mitmweb instead.
pオプションでproxyのポートを指定できます
(_venv) E:\projects\testcode\mitmproxy>mitmweb -p 17766
Web server listening at http://127.0.0.1:8081/
Proxy server listening at http://*:17766
ブラウザが勝手に開きます

証明書のインストール

httpsの通信を見るには証明証が必要です
proxyに接続した状態でhttp://mitm.itにアクセスします
windowsっぽいアイコンをクリックするとp12ファイルのダウンロードが始まるので後は指示に従ってインストールします

指示の雑な訳

  • P12ファイルをダブルクリック
  • 現在のユーザーを選択して次をクリック
  • 次をクリック
  • パスワードを空のままにして次をクリック
  • 証明書をすべて次のストアに配置するを選択
  • 信頼されたルート証明機関を選択
  • 次をクリックして完了をクリック
  • もし確認画面が出てきたらはいをクリック
  • おわり

通信を見る

左側から見たい通信を選んで右側で見ます
右側の下の方のviewからhtmlやjsonなど見たい形式にできます

enter image description here

intercept

通信を書き換える事ができます
interceptに
google.co.jp/$
と入力してproxyに繋いでいる状態でhttps://www.google.co.jp/にアクセスするとmitmproxyがリクエストを止めます
interceptしたところはオレンジ色になってます

enter image description here

選択してaキーでリクエストを通します
すると次はレスポンスを補足して止まります
右上の方にあるペンのアイコンをクリックすると編集モードに入ります。編集が終わったらチェックマークをクリック
ここでHTMLからgooglelogo_color_272x92dp.pngの部分を探して全部適当なurlに置き換えてからaキーでリクエストを通してみます
たとえばいらすとやの画像に置き換えてみる

enter image description here

ロゴのURLを書き換える事ができました
接続がタイムアウトする前に書き換える必要があります

QooQ