mitmproxyはhttpsに対応したman-in-the-middle型のプロキシサーバー。
PC側でmitmproxyを起動してAndroid実機へプロキシ設定するだけでお手軽に通信を覗いたり改竄することができる。
Android端末にrootも不要なので、テストがとても捗る。
これでハイスコア更新したりありえない場所にワープしたりするのが流行ったとかなんとか。
PC側
インストール
Windowsはインストーラーがある。Ubuntuはバイナリパッケージを使うかaptで。
$ sudo apt install mitmproxy
起動
$ mitmproxy
デフォルトでポート番号8080で起動する。
Android側
WiFi接続へプロキシを設定する。
設定
のWi-Fi
から接続のネットワークを変更
プロキシのホスト名 192.168.1.xxx (PC側のIPアドレス) プロキシポート 8080
ブラウザでhttp://mitm.itへアクセスしてAndroid用の証明書をインポートする。
以上で設定完了。
この状態で端末側で通信を発生させるとmitmproxyの画面にずらずらと出力されるはず。
操作方法は?
を入力するとヘルプが表示されるのでそちらを参照。
便利機能
リミット
正規表現パターンでの絞り込み(フィルタリング)が行える。 l
キーを押してパターンを入力。
インターセプト
パターンに一致した通信を止めて書き換えることができる。 i
キーを押してパターンを入力。
通信内容を改竄するにはインターセプトしたフローを選択してEnter
キーで内容を表示、e
キーで編集モードに入る。
編集を完了したらa
キーで通信を再開。
一度のインターセプトでリクエストとレスポンスの2回改竄機会がある。
リプレイ
一度行った通信を内容を書き換えて再送できる。r
キー。
ヘッダー追加
リクエストかレスポンスにヘッダーを追加できる。 o
次にH
キー。 コマンドラインからは--setheader
スクリプティング
pythonスクリプトで自動処理できる。 o
次にS
キー。 コマンドライン引数は-s
# antiapple.py def request(context, flow): if flow.request.host.startswith('apple.com'): flow.request.host = 'google.com'
$ mitmproxy -s antiapple.py
お金(コイン)を扱うものはちゃんとして欲しいのだけどなぁ