
Charles Proxyを使用してAndroidおよびiOSのHTTP/HTTPSトラフィックを傍受するためのステップバイステップガイド。SSLプロキシ、CA証明書のインストール、信頼設定を網羅しています。
モバイルハッカーのための Charles Proxy ガイド 👍
Charles は HTTP プロキシ / HTTP モニター / リバースプロキシであり、開発者が自身のマシンとインターネット間のすべての HTTP および SSL / HTTPS トラフィックを閲覧できるようにします。これにはリクエスト、レスポンス、および HTTP ヘッダー(Cookie やキャッシュ情報を含む)が含まれます。
Charles -> Proxy -> SSL Proxying Settings... -> SSL Proxying
Charles -> Help -> SSL Proxying -> Install Charles Root Certificate
Charles がリッスンしている IP アドレス を取得する
ifconfig | tr "\n" "→" | tr "\r" "→" | grep -Eo "→en0.*?→en[[:digit:]]" | grep -Eo "inet[[:blank:]+]([0-9]{1,3}\.){3}[0-9]{1,3}" | cut -d' ' -f2 | tr -d "\n" | pbcopy && pbpaste
ifconfig | tr "\n" "→" | tr "\r" "→" | grep -Eo "→en[[:digit:]].*?active→" | grep -v "en0" | grep -Eo "inet[[:blank:]+]([0-9]{1,3}\.){3}[0-9]{1,3}" | cut -d' ' -f2 | tr -d "\n" | pbcopy && pbpaste
Charles を起動し、実行したままにする
IP アドレス を取得する
Android デバイスが Charles と同じネットワークを使用していることを確認する
Android デバイス上で
Settings -> Wi-Fi -> 使用中のネットワークを長押し -> Modify network -> Advanced options -> Proxy -> Manual に移動する
ブラウザを起動し、https://chls.pro/ssl にアクセスして証明書を保存する
コンピューター上に「A connection attempt to Charles has been made from the host ...」というダイアログが表示されるので、Allow ボタンをクリックする
<?xml version="1.0" encoding="utf-8"?>
<network-security-config xmlns:android="http://schemas.android.com/apk/res/android">
<debug-overrides>
<trust-anchors>
<!-- Trust user added CAs while debuggable only -->
<certificates src="user" />
</trust-anchors>
</debug-overrides>
</network-security-config>
application の下に networkSecurityConfig 属性を追加するだけです。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools">
<application
android:networkSecurityConfig="@xml/network_security_config">
</application>
</manifest>
これで、アプリの debug ビルドバリアントでは SSL プロキシが機能するようになりますが、release ビルドバリアントでは機能しません。
Charles を起動し、実行したままにします
IP アドレスを取得します
iOS デバイスが Charles と同じネットワークを使用していることを確認します
iOS デバイスで
Settings -> Wi-Fi に移動し、使用中のネットワークをクリックして、HTTP PROXY を Manual に設定します
Safari を起動し、https://chls.pro/ssl にアクセスして(うまくいかない場合は http://www.charlesproxy.com/getssl を試してください)、証明書をインストールします
コンピューター上に「A connection attempt to Charles has been made from the host ...」というダイアログが表示されるので、Allow ボタンをクリックするだけです
ターミナルで curl を使ってデバッグする必要がある場合:
Charles をプロキシとして設定する
export http_proxy=http://127.0.0.1:8888 && export https_proxy=$http_proxy
プロキシを解除する
unset http_proxy https_proxy