写点什么

在 Google Play 应用上实施中间人攻击 | 金融科技漏洞赏金系列第 3 部分

作者:qife
  • 2025-07-17
    中国台湾
  • 本文字数:1166 字

    阅读完需:约 4 分钟

在 Google Play 应用上实施中间人攻击 | 金融科技漏洞赏金系列第 3 部分

在上一部分揭露 GraphQL 调试接口并探索内省查询后,我产生了实时观察这些 API 调用的想法。需要了解它们的使用场景,更重要的是发现那些未在内省中列出的隐藏查询或变更操作。


为此必须拦截应用与服务端的通信。通常需要中间人攻击(MITM)配置,但关键在于:拦截不代表能读取流量,必须先解密数据。幸运的是,我准备了已 root 的安卓手机进行实验。具体方案如下:


  1. 在 root 过的手机安装 Google Play 的金融科技应用

  2. 安装 Burp Suite 的 SSL 证书

  3. 将笔记本电脑配置为 Wi-Fi 代理

  4. 设置 Burp Suite 拦截数据


该方法成败取决于一个关键因素:应用是否未启用证书锁定(Certificate Pinning)。证书锁定是应用只信任特定 SSL 证书的安全机制,会阻碍通信解密。若存在证书锁定,就需要反编译应用、替换证书并重新编译——这正是我想避免的复杂过程。

向安卓设备添加自定义 SSL 证书

Root 权限的重要性:安卓系统出于安全考虑会限制添加新信任证书。但通过 root 权限可突破限制,修改系统文件和设置,这对安装自定义证书至关重要。


首先获取所需证书。访问http://127.0.0.1:8080下载 Burp Suite 的 CA 证书,我们需要的是二进制格式的cacert.der文件。


安卓系统会校验证书哈希与文件名的匹配度,因此需要计算哈希并重命名文件:


# 在本地计算机计算.der证书文件的哈希CERT_HASH=$(openssl x509 -inform DER -subject_hash_old -in cacert.der | head -1)echo "证书哈希: $CERT_HASH"
# 用计算出的哈希重命名.der证书文件并添加.0后缀mv cacert.der ${CERT_HASH}.0
复制代码


最终得到9a5ba575.0文件(你的结果很可能相同)。该证书有效期至 2032 年。


接下来通过 ADB(安卓调试桥)将文件推送到 root 过的安卓设备,并放入系统信任证书目录。这需要重新挂载系统分区为可读写状态,移动证书后设置正确权限:


# 推送重命名后的证书到安卓设备adb push 9a5ba575.0 /sdcard/
# 将证书移至系统信任证书目录adb shellsumount -o rw,remount /systemcp /sdcard/9a5ba575.0 /system/etc/security/cacerts/chmod 644 /system/etc/security/cacerts/9a5ba575.0reboot
复制代码


手机重启后,若一切顺利,就能通过代理配置在 Burp Suite 解密流量了。

配置局域网代理

这部分很简单:在安卓 Wi-Fi 设置中将代理改为"手动",输入电脑的内网 IP 和端口(8080 端口较合适)。确保 Burp Suite 设置为监听所有接口(0.0.0.0:8080)。


配置完成后,启动金融科技应用并开启 Burp Suite 拦截器。

成果展示

一切运行顺利!我成功观察到金融科技应用发出的所有后端请求,可以暂停、检查甚至修改它们。更棒的是能看到包含自己账户信息的真实响应!


目前暂不提交漏洞报告。我在研究笔记中建议采用证书锁定来增强安全性,但会在完整研究完成后再公开细节。😎


敬请期待下一章的发现!更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码


办公AI智能小助手


用户头像

qife

关注

还未添加个人签名 2021-05-19 加入

还未添加个人简介

评论

发布
暂无评论
在Google Play应用上实施中间人攻击 | 金融科技漏洞赏金系列第3部分_移动安全_qife_InfoQ写作社区