| name | intercepting-mobile-traffic-with-burpsuite |
| description | 使用 Burp Suite 代理拦截和分析移动应用的 HTTP/HTTPS 流量,以识别不安全的 API 通信、 认证缺陷、数据泄露和服务器端漏洞。适用于移动应用渗透测试、API 安全评估或 评估客户端-服务器通信模式。适合移动流量拦截、Burp Suite 移动代理、API 安全测试 或移动 HTTPS 分析相关请求。
|
| domain | cybersecurity |
| subdomain | mobile-security |
| author | mahipal |
| tags | ["mobile-security","android","ios","burp-suite","traffic-interception","penetration-testing"] |
| version | 1.0.0 |
| license | Apache-2.0 |
使用 Burp Suite 拦截移动流量
适用场景
适用于以下情况:
- 测试移动应用 API 端点的认证、授权和注入漏洞
- 在渗透测试中分析移动应用与后端服务器之间传输的数据
- 评估证书固定实现及其绕过难度
- 识别移动网络流量中的敏感数据泄露
不适用场景:不得拦截未获授权应用的流量——未经授权的流量拦截违反计算机欺诈法律。
前置条件
- 测试工作站安装了 Burp Suite Professional 或 Community Edition
- Android 设备/模拟器或 iOS 设备与 Burp Suite 主机在同一网络
- 目标设备已安装 Burp Suite CA 证书
- Android 7+:需修改应用网络安全配置或使用 Magisk 模块信任系统 CA
- SSL 证书固定绕过:需要 Frida + Objection 或自定义 Frida 脚本
- 可配置代理设置的 Wi-Fi 网络
工作流程
步骤 1:配置 Burp Suite 代理监听器
Burp Suite > Proxy > Options > Proxy Listeners:
- 绑定地址:所有接口(或特定 IP)
- 绑定端口:8080
- 启用"Support invisible proxying"
验证监听器是否激活,并记录工作站在共享网络上的 IP 地址。
步骤 2:配置移动设备代理
Android:
设置 > Wi-Fi > [网络] > 高级 > 手动代理
- 主机名:<burp_workstation_ip>
- 端口:8080
iOS:
设置 > Wi-Fi > [网络] > 配置代理 > 手动
- 服务器:<burp_workstation_ip>
- 端口:8080
步骤 3:安装 Burp Suite CA 证书
Android(API 24 以下):
Android(API 24+ / Android 7+):
针对 API 24+ 的应用默认不信任用户安装的 CA。解决方案:
openssl x509 -inform DER -in burp-ca.der -out burp-ca.pem
HASH=$(openssl x509 -inform PEM -subject_hash_old -in burp-ca.pem | head -1)
cp burp-ca.pem "$HASH.0"
adb push "$HASH.0" /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/$HASH.0
iOS:
1. 在 Safari 中访问 http://<burp_ip>:8080
2. 下载 Burp CA 证书
3. 设置 > 通用 > VPN 与设备管理 > 安装描述文件
4. 设置 > 通用 > 关于本机 > 证书信任设置 > 启用完全信任
步骤 4:拦截和分析流量
配置好代理后,打开目标应用并浏览其功能:
Burp Suite > Proxy > HTTP History:查看所有捕获的请求和响应。
重点分析区域:
- 认证令牌:JWT 结构、令牌过期、刷新机制
- API 端点:RESTful 路径、GraphQL 查询、参数模式
- 传输中的敏感数据:PII、凭据、金融数据
- 响应标头:安全标头(HSTS、CSP、X-Frame-Options)
- 错误响应:堆栈跟踪、调试信息、内部路径
步骤 5:使用 Burp Repeater 测试 API 漏洞
将拦截的请求转发到 Repeater 进行手动测试:
右键请求 > Send to Repeater
测试类别:
- 认证绕过:删除/修改认证令牌
- IDOR:修改用户 ID、对象引用
- 注入:参数中的 SQL 注入、NoSQL 注入
- 频率限制:快速重放请求评估暴力破解防御
- 业务逻辑:修改请求中的价格、数量、权限
步骤 6:使用 Burp Scanner 自动化测试
右键请求 > Do active scan(仅 Professional 版)
扫描器检查项:
- SQL 注入(基于错误、盲注、时间盲注)
- XSS(反射型、存储型)
- 命令注入
- 路径遍历
- XML/JSON 注入
- 认证缺陷
步骤 7:处理证书固定
如果由于证书固定无法看到流量:
frida -U -f com.target.app -l ssl-pinning-bypass.js
objection --gadget com.target.app explore
ios sslpinning disable
android sslpinning disable
核心概念
| 术语 | 定义 |
|---|
| MITM 代理 | 中间人代理,终止并重新建立 TLS 连接以检查加密流量 |
| 证书固定(Certificate Pinning) | 客户端验证,在操作系统信任库之外限制可接受的服务器证书 |
| 网络安全配置(Network Security Config) | Android XML 配置,控制应用信任锚点、明文流量策略和证书固定 |
| 透明代理(Invisible Proxying) | Burp 功能,处理不发送 CONNECT 请求的非代理感知客户端 |
| IDOR | 不安全直接对象引用(Insecure Direct Object Reference)——无需授权检查即可通过操纵标识符访问资源 |
工具与系统
- Burp Suite Professional:功能完整的 Web 应用安全测试代理,含主动扫描器
- Burp Suite Community:免费版本,提供手动拦截和基本工具
- Frida:用于运行时 SSL 证书固定绕过的动态插桩工具
- mitmproxy:Burp Suite 的开源替代品,支持程序化流量分析
- Charles Proxy:替代 HTTP 代理,移动端证书安装更友好
常见问题
- Android 7+ CA 信任:面向 API 24+ 的应用不信任用户安装的证书。必须使用系统 CA 安装或应用修改方案。
- 证书透明度:某些应用使用证书透明度日志检测 MITM。检查应用中是否强制执行 CT。
- 非 HTTP 协议:Burp Suite 仅处理 HTTP/HTTPS。WebSocket、MQTT、gRPC 或自定义二进制协议需使用 Wireshark。
- 基于 VPN 的应用:使用 VPN 隧道的应用会绕过设备代理设置。可能需要在 root 设备上使用 iptables 规则重定向流量。