如何对 APP 进行 HTTPS 监听并抓包
HTTPS 监听和抓包是分析 APP 网络请求的重要手段,可用于调试、安全测试或逆向分析。以下是详细的抓包方法,涵盖 电脑端代理工具 和 手机端抓包工具,并针对不同场景(如 SSL Pinning、高版本 Android)提供解决方案。
一、电脑端代理抓包(推荐)
适用于 开发调试、普通 HTTPS 请求,使用 Charles、Fiddler、Burp Suite 等工具。
1. 准备工作
工具选择:
Charles(跨平台,适合 HTTPS 解密)
Fiddler(Windows 平台,免费)
Burp Suite(安全测试,支持 HTTPS 拦截)
环境要求:
电脑和手机在同一局域网(如连接同一 Wi-Fi)。
关闭防火墙或允许代理端口通信。
2. 配置步骤(以 Charles 为例)
(1) 电脑端设置
启动 Charles,进入
Proxy > Proxy Settings,记录代理端口(默认8888)。启用 HTTPS 解密:
Proxy > SSL Proxying Settings > Add,输入*(拦截所有 HTTPS 流量)。
获取电脑 IP:
Windows:
ipconfig查看 IPv4 地址。macOS:
ifconfig | grep "inet "。
(2) 手机端设置
配置代理:
进入 Wi-Fi 设置 → 手动代理 → 输入电脑 IP 和端口(如
192.168.1.100:8888)。
安装 Charles 证书:
iOS:Safari 访问
http://chls.pro/ssl下载证书 → 信任证书(设置 > 通用 > 证书信任设置)。Android:浏览器访问
http://<电脑IP>:8888下载证书 → 安装到设置 > 安全 > 加密与凭据。
(3) 开始抓包
在 Charles 中点击
Start Recording,操作 APP,所有 HTTP/HTTPS 请求将显示在 Charles 界面。
二、手机端直接抓包(无需电脑)
适用于 快速抓包、无代理环境,使用 HttpCanary(Android)、Stream(iOS)。
1. Android:HttpCanary(小黄鸟)
安装 HttpCanary(需 Android 设备)。
安装证书:
导出根证书(
.pem),重命名为哈希值.0(如c8750f0d.0)。复制到
/system/etc/security/cacerts/(需 Root)。
开始抓包:
启动 VPN 模式,选择目标 APP,自动解密 HTTPS 流量。
2. iOS:Stream
安装 Stream(需越狱或 TestFlight 版本)。
信任证书:
设置 > 通用 > VPN 与设备管理安装 Stream 证书。
开始抓包:
启动代理,选择目标 APP,捕获 HTTPS 请求。
三、高级场景解决方案
1. 绕过 SSL Pinning(HTTPS 证书绑定)
部分 APP(如金融类)会校验服务器证书,导致代理工具无法解密。解决方案:
使用 Frida/Objection 动态 Hook 证书校验逻辑。
Sniffmaster(iOS):直接连接设备,绕过代理限制,支持 HTTPS 双向认证破解。
Magisk 模块(Android):安装
Move Certificates模块,将用户证书转为系统证书。
2. 高版本 Android(≥7.0)HTTPS 抓包
Android 7+ 默认不信任用户证书,需额外操作:
方法 1(Root):
将证书复制到
/system/etc/security/cacerts/,修改权限为644。
方法 2(无 Root):
使用模拟器(如 MuMu 模拟器),安装证书到系统目录。
或使用
Packet Capture(VPN 模式,无需 Root)。
四、常见问题与排查
抓不到包:
检查代理配置是否正确。
关闭 VPN/ 广告拦截器。
重启抓包工具或手机。
HTTPS 无法解密:
重新安装证书。
检查 Charles/Fiddler 的 SSL Proxying 设置是否包含目标域名。
数据加密或乱码:
禁用 HTTP/2(Charles 中取消勾选
Enable HTTP/2)。使用 Wireshark 分析原始 TCP 流量。
五、安全与法律注意事项
仅限合法用途:抓包行为需符合隐私政策和法律法规,禁止非法篡改数据。
及时清理证书:抓包完成后卸载证书,避免安全风险。
生产环境谨慎使用:避免泄露敏感数据。
工具对比与推荐
通过上述方法,你可以成功对 APP 进行 HTTPS 监听和抓包。如需更高级的流量分析(如 TCP 层),可结合 Wireshark 或 Burp Suite。