
Guía paso a paso para interceptar el tráfico HTTP/HTTPS de Android e iOS con Charles Proxy, abarcando el proxy SSL, la instalación del certificado CA y la configuración de confianza.
La guía de los hackers móviles para Charles Proxy 👍
Charles es un proxy HTTP / monitor HTTP / proxy inverso que permite a un desarrollador ver todo el tráfico HTTP y SSL / HTTPS entre su máquina e Internet. Esto incluye solicitudes, respuestas y las cabeceras HTTP (que contienen las cookies y la información de caché).
Charles -> Proxy -> SSL Proxying Settings... -> SSL Proxying
Charles -> Help -> SSL Proxying -> Install Charles Root Certificate
Obtenga la dirección IP a la que Charles está escuchando
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
Inicie Charles y manténgalo en ejecución
Obtenga la dirección IP
Asegúrese de que el dispositivo Android utiliza la misma red que Charles
En el dispositivo Android
Vaya a Settings -> Wi-Fi -> mantenga pulsada la red en uso -> Modify network -> Advanced options -> Proxy -> Manual
Inicie el navegador, visite https://chls.pro/ssl, guarde el certificado
Aparece un diálogo en el ordenador preguntando "A connection attempt to Charles has been made from the host ...", simplemente haga clic en el botón 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 bajo 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>
Ahora el proxying SSL debería funcionar para la variante de compilación debug de tu app, pero no para la variante de compilación release.
Inicia Charles y mantenlo en ejecución
Obtén la dirección IP
Asegúrate de que el dispositivo iOS usa la misma red que Charles
En el dispositivo iOS
Ve a Settings -> Wi-Fi -> haz clic en la red en uso -> establece HTTP PROXY en Manual
Inicia Safari, visita https://chls.pro/ssl (si no funciona, prueba http://www.charlesproxy.com/getssl), instala el certificado
Aparece un diálogo en el ordenador preguntando "A connection attempt to Charles has been made from the host ...", simplemente haz clic en el botón Allow
En caso de que necesites depurar mediante curl en una terminal:
Para establecer Charles como proxy
export http_proxy=http://127.0.0.1:8888 && export https_proxy=$http_proxy
Para eliminar el proxy
unset http_proxy https_proxy