在 Google Play 应用上实施中间人攻击 | 金融科技漏洞赏金系列第 3 部分
在 Google Play 应用上实施中间人攻击 | 金融科技漏洞赏金系列第 3 部分
在上一部分揭露 GraphQL 调试接口并探索内省查询后,我产生了实时观察这些 API 调用的想法。需要了解它们的使用场景,更重要的是发现那些未在内省中列出的隐藏查询或变更操作。
为此必须拦截应用与服务端的通信。通常需要中间人攻击(MITM)配置,但关键在于:拦截不代表能读取流量,必须先解密数据。幸运的是,我准备了已 root 的安卓手机进行实验。具体方案如下:
在 root 过的手机安装 Google Play 的金融科技应用
安装 Burp Suite 的 SSL 证书
将笔记本电脑配置为 Wi-Fi 代理
设置 Burp Suite 拦截数据
该方法成败取决于一个关键因素:应用是否未启用证书锁定(Certificate Pinning)。证书锁定是应用只信任特定 SSL 证书的安全机制,会阻碍通信解密。若存在证书锁定,就需要反编译应用、替换证书并重新编译——这正是我想避免的复杂过程。
向安卓设备添加自定义 SSL 证书
Root 权限的重要性:安卓系统出于安全考虑会限制添加新信任证书。但通过 root 权限可突破限制,修改系统文件和设置,这对安装自定义证书至关重要。
首先获取所需证书。访问http://127.0.0.1:8080
下载 Burp Suite 的 CA 证书,我们需要的是二进制格式的cacert.der
文件。
安卓系统会校验证书哈希与文件名的匹配度,因此需要计算哈希并重命名文件:
最终得到9a5ba575.0
文件(你的结果很可能相同)。该证书有效期至 2032 年。
接下来通过 ADB(安卓调试桥)将文件推送到 root 过的安卓设备,并放入系统信任证书目录。这需要重新挂载系统分区为可读写状态,移动证书后设置正确权限:
手机重启后,若一切顺利,就能通过代理配置在 Burp Suite 解密流量了。
配置局域网代理
这部分很简单:在安卓 Wi-Fi 设置中将代理改为"手动",输入电脑的内网 IP 和端口(8080 端口较合适)。确保 Burp Suite 设置为监听所有接口(0.0.0.0:8080
)。
配置完成后,启动金融科技应用并开启 Burp Suite 拦截器。
成果展示
一切运行顺利!我成功观察到金融科技应用发出的所有后端请求,可以暂停、检查甚至修改它们。更棒的是能看到包含自己账户信息的真实响应!
目前暂不提交漏洞报告。我在研究笔记中建议采用证书锁定来增强安全性,但会在完整研究完成后再公开细节。😎
敬请期待下一章的发现!更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码

评论