[改訂版] iPhoneアプリのSSL接続をパケットキャプチャする方法 | [ bROOM.LOG ! ]とかBurp Proxy で iPhone の通信をパケットキャプチャ - Please Sleepとかさんざん記事は出回っているのだけれど,もうちょっと簡単にやる方法があるのでシェアーさせて頂きます.
といっても Burp Proxy Help - Installing Burp's CA Certificate のiPhoneの項目に書いてあるやつに画像を付けてだらだらやっているだけなので時間が無い人はこちらをどうぞ
Burp Proxyを立ち上げる
Burpっていうのは便利な奴で,ここからダウンロード出来る.
http://portswigger.net/burp/
プロキシの設定をかえる
デフォルトではローカルからのリクエストだけを受け付けているので,プロキシサーバとして振る舞って頂けるように設定を致します.具体的にはProxyタブのOptionsを開き
これで外部からのリクエストを受け付けるようになりました.
iOSにルート証明書をインストールする
さて,SSL/TLSによる通信は暗号化されているため簡単には見えないわけです.Burpのデフォルトの動作としてはBurp自身が正しい証明書で通信をすることでBurpとしては復号結果を保持し,本来のクライアントに転送する際に,Burp自身が持っているルート証明書によって証明される証明書をホスト毎に自動生成する,という形をとります.
どういうことかというと,このBurpのルート証明書を対象端末に入れれば万事OKということです.
方法としてはBurpを立ち上げたマシンのIPを調べまして,先ほど指定したポートにアクセスします.するとこういう画面がでてきますので,迷わず右上の'CA Certificate'と言うリンクをぽちっとやります.
あとは画面指示に従いルート証明書をインストールしましょう.
Proxyの設定をする
設定画面のWiFiから接続中のアクセスポイントを選択し,一番下のHTTPプロキシの項目をそれらしい感じに設定します.
192.168.1.7の8080でBurpが待ち受けている場合は以下のような設定になります.
実際にHTTPSなサイトにアクセスしてみる
左がBurpが動作しているMacの画面,右がiOS上の画面です.HTMLがちゃんと展開されているのがわかります.
便利ですね.Burpの機能を使えばリクエストやレスポンスの中身を書き換えれますので,手軽にいろいろ試せて良いですよ.