
Guida passo passo per intercettare il traffico HTTP/HTTPS di Android e iOS con Charles Proxy, che copre il proxy SSL, l'installazione del certificato CA e le impostazioni di attendibilità.
La guida per hacker mobile a Charles Proxy 👍
Charles è un proxy HTTP / monitor HTTP / Reverse Proxy che consente a uno sviluppatore di visualizzare tutto il traffico HTTP e SSL / HTTPS tra la propria macchina e Internet. Questo include richieste, risposte e le intestazioni HTTP (che contengono i cookie e le informazioni di caching).
Charles -> Proxy -> SSL Proxying Settings... -> SSL Proxying
Charles -> Help -> SSL Proxying -> Install Charles Root Certificate
Ottieni l'indirizzo IP su cui Charles è in ascolto
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
Avvia Charles e lascialo in esecuzione
Ottieni l'indirizzo IP
Assicurati che il dispositivo Android utilizzi la stessa rete di Charles
Sul dispositivo Android
Vai su Settings -> Wi-Fi -> tieni premuto sulla rete in uso -> Modify network -> Advanced options -> Proxy -> Manual
Avvia il Browser, visita https://chls.pro/ssl, salva il certificato
Sul computer compare una finestra di dialogo che chiede "A connection attempt to Charles has been made from the host ...", fai semplicemente clic sul pulsante 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 sotto 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>
Ora il proxying SSL dovrebbe funzionare per la variante di build debug della tua app, ma non per la variante di build release.
Avvia Charles e lascialo in esecuzione
Ottieni l'indirizzo IP
Assicurati che il dispositivo iOS utilizzi la stessa rete di Charles
Sul dispositivo iOS
Vai su Settings -> Wi-Fi -> clicca sulla rete in uso -> imposta HTTP PROXY su Manual
Avvia Safari, visita https://chls.pro/ssl (se non funziona, prova http://www.charlesproxy.com/getssl), installa il certificato
Sul computer compare una finestra di dialogo che chiede "A connection attempt to Charles has been made from the host ...", clicca semplicemente sul pulsante Allow
Nel caso in cui tu debba eseguire il debug tramite curl in un terminale:
Per impostare Charles come proxy
export http_proxy=http://127.0.0.1:8888 && export https_proxy=$http_proxy
Per rimuovere il proxy
unset http_proxy https_proxy