验证:Verify: Docker 37/37 | Zenodo DOI | IACR 2026/526 | Packet Storm
最后更新: 2026-03-25Last updated: 2026-03-25

INNORA AI · 安全研究

📌 完整技术报告(含在线 PoC 可验证演示)

🌐 研究主站https://innora.ai/zfb/

🐙 GitHub(含完整代码)github.com/sgInnora/alipay-deeplink-research

⚠️ 为防内容被删,请立即 Fork 仓库 + 保存网页到本地!多备份几个地方!

· · ·

你点了一条链接。

没有弹窗。没有提示。没有任何异常。

但你的 实时位置信息、手机型号、系统版本、网络状态、蓝牙开关、摄像头权限 —— 在你毫不知情的情况下,全部被拿走了

攻击者还能伪造你看到的每一个界面,把标题栏改成「账户安全中心」,弹出假的系统通知,甚至帮你打开转账页面并填好金额。

而这一切,来自一个 每天超过10亿人使用 的国民级支付App。

厂商官方回复 ↓

「正常功能」

—— 某头部支付平台安全团队,2026年3月8日

是的,你没看错。我们花了3周,在3台设备、3个国家进行交叉验证,提交了包含 36 个安全发现 + 308 条数据窃取日志 + 42 张真机截图 的完整报告。

厂商的安全团队评估后回复:这些都属于正常功能。

· · ·

只需一步:点一条链接

不需要 Root。不需要越狱。不需要安装任何东西。

受害者唯一需要做的 —— 在微信群、QQ群或短信里点开一条「红包」链接

这条链接通过 DeepLink 协议直接唤起支付App,在 App 内置浏览器里加载攻击者的网页。而这个网页 自动获得了 App 的内部接口权限 —— 不弹窗,不授权,静默执行。

📱 完整攻击流程:

攻击者在群里发「红包链接」/「活动链接」

受害者点击 → 手机浏览器解析 DeepLink

支付App 自动启动 → 加载攻击者的网页

攻击网页获得内部接口 → 静默窃取数据

数据回传攻击者服务器(用户全程无感知)

· · ·

36个安全发现,逐个拆解

以下每一项,都是外部攻击者页面可以在 App 内静默执行的「正常功能」。

严 重

① 实时位置信息窃取
调用 getLocation,静默获取精确经纬度 + 城市 + 国家。用户曾给App授过定位权限就会中招,不会弹任何提示

② 转账页面预填充
调用 startApp 打开转账功能,自动填好收款账号和金额。确认仍需用户操作,但配合 UI 伪装可诱导完成。

③ 支付弹窗触发
调用 tradePay 弹出支付确认页。用户取消后可反复触发,配合伪造界面进行钓鱼攻击。

高 危

④ 设备完整指纹一键获取
品牌、型号、系统版本、存储空间、电量、屏幕分辨率、蓝牙 / WiFi / 摄像头 / 麦克风授权状态 —— 一次性全部泄露。

⑤ 标题栏 + 通知伪造
setTitle 把标题栏改成「账户安全中心」,toast 弹出假通知。用户根本分不清真假。

⑥ 11个敏感页面直达
交易记录、转账联系人、付款码、余额宝、安全设置、银行卡管理…… 通过 startApp 直接跳转,零确认。

⑦ 会话信息泄露
getStartupParams 暴露 sessionId、启动来源、App版本。攻击者知道你从哪个App跳转过来的。

⑧ 网络状态窃取
WiFi / 蜂窝 / 网络类型全部暴露。

⑨ 服务器时间同步
获取平台精确服务器时间,可用于时序攻击。

中 危

⑩ 链式 WebView 无限打开
pushWindow 可无限打开新页面,每个页面自动继承全部接口权限,形成无限攻击链。

⑪⑫ Scheme 注入(拨号 + 短信)
pushWindow 可注入 tel: 和 sms: 协议,触发系统拨号器和短信应用。

⑬⑭ 剪贴板读写
setClipboard / getClipboard,静默读取和修改用户剪贴板内容。

⑮⑯⑰ 联系人选择 / 分享劫持 / 振动反馈
弹出联系人选择器获取信息、触发分享面板、控制手机振动 —— 全部从外部页面一键调用。

· · ·

3台设备,3个国家,308条日志

📱 Samsung S25 Ultra — Android 15 · 新西兰

📱 Redmi 12 — Android 14 · 马来西亚

📱 iPhone 16 Pro — iOS 18.3 · 中国大陆

三台设备全部中招。攻击者服务器共记录了 308 条 窃取数据日志。以下是脱敏后的真实日志片段:

// 真实服务器日志 (坐标已脱敏)

{

"tag": "Location_Data",

"latitude": "-36.8***",

"longitude": "174.7***",

"city": "Auckland",

"device": "SM-S938B",

"timestamp": "2026-03-07T09:14:22Z"

}

· · ·

负责任披露全记录

2026-02-25 · 首次报告 (TLS/SSL 相关) → 官方安全响应中心

2026-03-07 · 完整报告 V3:17个发现 + 308条日志 + 42张截图 → 安全团队联系人

2026-03-08 · 厂商回复:「根据我们的评估,这些属于正常功能」

2026-03-11 · 公开全部研究成果

我们完全遵循了负责任披露流程。先私下报告,等待官方响应。

当一个外部网页能在 App 内 静默获取用户位置伪造界面进行钓鱼预填转账信息 时——

称之为「正常功能」,我们无法接受。

· · ·

⚠️ 重要澄清

本研究未发现零交互自动扣款。转账预填充仍需用户手动点击确认。位置获取依赖用户此前已授予App的定位权限。

核心问题在于:任何外部HTTPS网页通过DeepLink加载后,可以调用大量本应仅限官方小程序使用的内部接口,无需额外授权。这使传统钓鱼攻击的杀伤力提升了一个数量级。

在线PoC验证(只读,不收集数据)

以下三个PoC页面均为只读演示,所有数据仅在本地显示,不传输至任何服务器。安全研究人员可自行验证。

🎯 攻击触发页 — 模拟攻击者分发钓鱼链接

innora.ai/zfb/poc/trigger.html

🔓 JSBridge PoC — 17个接口实测演示

innora.ai/zfb/poc/verify.html

🔗 链式攻击 — 证明链式页面保留完整权限

innora.ai/zfb/poc/chain.html

· · ·

我们给出的修复建议

🔒 URL 白名单:仅允许官方域名通过 WebView 加载

🔒 接口分级:外部页面只能用基础API,敏感接口需域名+签名双重验证

🔒 DeepLink 确认弹窗:外部来源的链接必须显示安全提示

🔒 位置权限隔离:WebView 内的定位请求应独立于系统权限

🔒 UI 防伪标识:外部页面禁止修改标题栏,或添加不可伪造的安全标记

· · ·

🛡️ 防删除 · 多节点存档

本研究已在多个独立节点同步发布
如发现任一地址不可访问,请从其他节点获取完整内容

🌐 主站https://innora.ai/zfb/

🐙 GitHubgithub.com/sgInnora/alipay-deeplink-research

⚠️ 请立即 Fork 仓库 / 保存页面 / 转发本文
帮助保留证据,防止单节点删除!

法律声明:本研究仅用于安全教育目的。所有测试在研究者自有账户和设备上进行,未对第三方进行未授权访问。PoC 页面为只读演示,已禁用全部数据外传功能。研究遵循负责任披露流程,厂商已获充分响应时间。

Innora AI 安全研究团队

[email protected] · innora.ai

2026-03-11

— END —