
Guide étape par étape pour intercepter le trafic HTTP/HTTPS d'Android et d'iOS avec Charles Proxy, couvrant le proxy SSL, l'installation du certificat CA et les paramètres de confiance.
Le guide des hackers mobiles pour Charles Proxy 👍
Charles est un proxy HTTP / moniteur HTTP / proxy inverse qui permet à un développeur de visualiser tout le trafic HTTP et SSL / HTTPS entre sa machine et Internet. Cela inclut les requêtes, les réponses et les en-têtes HTTP (qui contiennent les cookies et les informations de mise en cache).
Charles -> Proxy -> SSL Proxying Settings... -> SSL Proxying
Charles -> Help -> SSL Proxying -> Install Charles Root Certificate
Obtenez l'adresse IP sur laquelle Charles écoute
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
Lancez Charles et laissez-le s'exécuter
Obtenez l'adresse IP
Assurez-vous que l'appareil Android utilise le même réseau que Charles
Sur l'appareil Android
Allez dans Settings -> Wi-Fi -> appui long sur le réseau utilisé -> Modify network -> Advanced options -> Proxy -> Manual
Lancez le navigateur, visitez https://chls.pro/ssl, enregistrez le certificat
Une boîte de dialogue apparaît sur l'ordinateur demandant « A connection attempt to Charles has been made from the host ... », cliquez simplement sur le bouton 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>
networkSecurityConfig sous application.
<?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>
Désormais, le proxy SSL devrait fonctionner pour la variante de build debug de votre application, mais pas pour la variante de build release.
Lancez Charles et laissez-le en cours d'exécution
Récupérez l'adresse IP
Assurez-vous que l'appareil iOS utilise le même réseau que Charles
Sur l'appareil iOS
Allez dans Settings -> Wi-Fi -> cliquez sur le réseau utilisé -> réglez HTTP PROXY sur Manual
Lancez Safari, visitez https://chls.pro/ssl (si cela ne fonctionne pas, essayez http://www.charlesproxy.com/getssl), installez le certificat
Une boîte de dialogue apparaît sur l'ordinateur demandant « A connection attempt to Charles has been made from the host ... », cliquez simplement sur le bouton Allow
Si vous avez besoin de déboguer via curl dans un terminal :
Pour définir Charles comme proxy
export http_proxy=http://127.0.0.1:8888 && export https_proxy=$http_proxy
Pour supprimer le proxy
unset http_proxy https_proxy