iPhoneのHTTPリクエスト/レスポンスをキャプチャする

ふと、あるアプリがどのような形でサーバとやりとりしているのかが気になったので、iPhoneのHTTPリクエスト/レスポンスをキャプチャできるように設定してみました。

必要な機器・ソフト

  • iPhone
  • PC
  • Burp Suite
    • 今回はWindows10で行いましたが、MacOSLinuxでも問題ないと思います。

1. Burp Suiteのインストール(PCで操作)

Proxyサーバとして動かすため、以下からBurp Suiteをダウンロード・インストールします。 無償版であるCommunity EditionでOKです。

https://portswigger.net/burp/releases/professional-community-2021-4-2?requestededition=community

2. Burp Suiteの設定(PCで操作)

  • Proxy -> Interceptをoff
  • Proxy -> Proxy Listeners -> All interfacesを選択
    • Portは任意で設定してください。今回は 8082 にします。

3. PCに外部からアクセスを許可する(PCで操作)

  • パーソナルファイアウォール等を開け外部からアクセスできるようにします。
    • Windows10の場合は上記で、All interfacesを選択した際にファイアウォールの許可設定がダイアログで出てくるのでOKします。
    • Linuxの場合はufwiptablesなどを開けてあげてください
  • プライベートIPアドレスを調べる
    • ipconfigなどでプライベートIPアドレスを調べ控えておきます。(固定にしちゃっても良いかも)

4. Proxyを設定する(iPhoneで操作)

  • 設定 -> Wi-Fi -> 接続しているアクセスポイント -> プロキシを構成 -> PCのIPアドレスとポートを入力

5. 証明書を設定する(iPhoneで操作)

こちらの手順に沿って行います。

https://portswigger.net/support/installing-burp-suites-ca-certificate-in-an-ios-device

6. 動作確認をしてみる(PC、iPhoneで操作)

適当なサイトにアクセスして、ちゃんとProxyを経由しているか確認します。

Proxy -> HTTP historyにアクセスした履歴が残っていればOKです。

まとめ

こちらの手順でiPhoneのHTTPリクエスト/レスポンスが取得できるようになりました。 リクエストを改ざんして色々試したいときにも役に立つと思います。

今日はこの辺で

参考

[改訂版] iPhoneアプリのSSL接続をパケットキャプチャする方法