在移动互联网时代,对手机APP和微信小程序进行安全测试变得至关重要。其中,Burp手机真机抓包是安全测试中不可或缺的一环。很多同学在进行真机抓包的时候会遇到各种各样的问题,例如无法安装证书,抓不到HTTPS包等等。本文将深入探讨如何使用 Burp Suite 在 Android 和 iOS 真机上抓取手机APP以及微信小程序的数据包,并分享一些实战经验,帮助大家避开常见的坑。
原理剖析:Burp Suite 代理与 HTTPS 拦截
Burp Suite 作为一款强大的 Web 安全测试工具,其核心原理是作为 HTTP/HTTPS 代理服务器。当我们配置手机通过 Burp Suite 代理上网时,手机发出的所有 HTTP/HTTPS 请求都会先经过 Burp Suite,然后由 Burp Suite 转发到目标服务器。这样,Burp Suite 就能截获和分析这些请求和响应。对于 HTTPS 请求,Burp Suite 需要使用自己的证书来伪装成服务器,与手机建立安全的 TLS 连接,这涉及到证书安装和信任的问题。
HTTPS 证书的安装与信任
由于 HTTPS 协议的加密特性,Burp Suite 需要生成自己的 CA 证书,并让手机信任该证书,才能成功拦截 HTTPS 数据包。否则,手机会认为 Burp Suite 的连接是不安全的,从而拒绝建立连接。这就是为什么配置 Burp Suite 手机抓包时,安装和信任证书是关键步骤。
实战操作:Android 真机抓包
1. Burp Suite 配置
- 打开 Burp Suite,选择
Proxy->Options。 - 在
Proxy Listeners中,添加一个新的监听器。设置Bind to address为 Burp Suite 所在机器的 IP 地址,端口设置为常用的8080或者8888。# 监听配置 Bind to address: 192.168.1.100 # 替换为你的电脑IP Port: 8080
2. Android 手机配置
- 确保 Android 手机和 Burp Suite 所在的电脑在同一个 Wi-Fi 网络下。
- 在 Android 手机的 Wi-Fi 设置中,找到当前连接的 Wi-Fi,修改网络配置,设置代理为手动,输入 Burp Suite 所在机器的 IP 地址和端口号。
3. 安装 Burp Suite CA 证书
- 在 Android 手机浏览器中访问
http://burp或者http://<Burp Suite 所在机器的 IP 地址>:8080,下载 Burp Suite 的 CA 证书(通常是cacert.der文件)。 - 在 Android 手机的
设置->安全->从存储设备安装证书中,选择下载的cacert.der文件进行安装。部分Android版本可能需要先设置锁屏密码才能安装证书。 - 注意: 对于 Android 7.0 及以上版本,App 默认不信任用户安装的证书。需要将证书添加到系统信任区,这通常需要 root 权限。可以使用 Magisk 等工具来实现。
4. 验证抓包
- 打开 Android 手机上的 App,观察 Burp Suite 中是否能抓到数据包。如果一切配置正确,应该能看到 App 的 HTTP/HTTPS 请求。
实战操作:iOS 真机抓包
1. Burp Suite 配置(同 Android)
- 参考 Android 真机抓包中的 Burp Suite 配置步骤。
2. iOS 手机配置(同 Android)
- 参考 Android 真机抓包中的 Android 手机配置步骤。
3. 安装 Burp Suite CA 证书
- 在 iOS 手机 Safari 浏览器中访问
http://burp或者http://<Burp Suite 所在机器的 IP 地址>:8080,下载 Burp Suite 的 CA 证书。 - 在
设置->通用->描述文件中,找到下载的证书并安装。安装完成后,还需要在设置->通用->关于本机->证书信任设置中,启用对 Burp Suite 证书的完全信任。
4. 验证抓包(同 Android)
- 打开 iOS 手机上的 App,观察 Burp Suite 中是否能抓到数据包。如果一切配置正确,应该能看到 App 的 HTTP/HTTPS 请求。
微信小程序抓包特殊处理
微信小程序本质上是运行在微信 App 中的 Web 应用,抓包原理与抓取普通 App 类似。但是,由于微信对小程序的安全策略做了特殊处理,抓包时可能会遇到一些问题。
1. 确保微信版本足够新
旧版本的微信可能存在一些漏洞,可以绕过微信的安全策略进行抓包。但是,新版本的微信已经修复了这些漏洞,抓包难度会增加。
2. 使用 Xposed 模块(可选)
对于某些小程序,微信可能会进行 SSL pinning,阻止 Burp Suite 拦截 HTTPS 请求。这时,可以使用 Xposed 框架和一些反 SSL pinning 模块来绕过微信的安全策略。
3. 修改微信配置文件(不推荐)
可以通过修改微信的配置文件来禁用 SSL pinning,但是这种方法比较复杂,而且有一定风险,不建议普通用户尝试。
避坑经验总结
- 网络问题: 确保手机和 Burp Suite 所在的电脑在同一个 Wi-Fi 网络下,并且网络连接正常。可以尝试 ping Burp Suite 所在机器的 IP 地址,看看是否能 ping 通。
- 防火墙问题: 检查电脑上的防火墙是否阻止了 Burp Suite 的流量。可以尝试关闭防火墙,或者添加 Burp Suite 到防火墙的信任列表。
- 证书问题: 确保正确安装和信任了 Burp Suite 的 CA 证书。可以尝试重新安装证书,或者清除手机上的所有证书,然后重新安装。
- 代理设置问题: 检查手机上的代理设置是否正确。可以尝试关闭代理,然后重新设置。
- App SSL pinning: 某些 App 可能会使用 SSL pinning 技术,阻止 Burp Suite 拦截 HTTPS 请求。可以使用 Xposed 模块或者修改 App 代码来绕过 SSL pinning。可以配合JustTrustMe使用
- Keep-Alive 连接: 某些情况下,服务器使用 Keep-Alive 连接,导致后续请求没有经过Burp代理。可以尝试在Burp Suite中禁用Keep-Alive。
在实际操作中,可能会遇到各种各样的问题。需要耐心排查,逐一解决。希望本文能帮助大家顺利进行Burp手机真机抓包,提升安全测试效率。
冠军资讯
CoderPunk