Shopify移动应用URL方案验证绕过漏洞导致JavaScript执行

本文详细分析了Shopify移动应用中存在的URL方案验证绕过漏洞。攻击者可通过data:或javascript:方案构造恶意URL,在应用WebView上下文中执行JavaScript代码,可能通过暴露的接口访问设备文件。漏洞利用需要安装恶意应用并诱导用户交互,最终获得500美元赏金。

Shopify移动应用URL方案验证绕过漏洞分析

漏洞概述

Shopify移动应用(包名:com.shopify.mobile)的NavigationActivity组件存在URL方案验证绕过漏洞。攻击者可通过构造特殊URL绕过验证机制,在应用WebView中执行任意JavaScript代码。

技术细节

应用信息

1
2
3
4
5
6
应用名称:Shopify
包名:com.shopify.mobile
版本号:9.85.1(版本代码33070)
最低SDK:26
目标SDK:32
SHA256:602982573bab04349ad812799319959e6236a746a41f88c7ec0196157ba15027

漏洞原理

NavigationActivity组件未对传入的URL参数进行方案验证,允许加载包含JavaScript代码的任意HTML内容。攻击者可利用data:或javascript:方案构造恶意URL,接管SmartWebview和EASDK JavaScript接口。

复现步骤

  1. 使用特定命令启动NavigationActivity:
1
2
3
am start -n com.shopify.mobile/com.shopify.mobile.navigation.NavigationActivity 
--es notification_type 2 --es notification_category 1 
--es url 'javascript://shopify.com/admin/articles/%0aalert(1);//'
  1. 成功执行JavaScript代码,弹出alert对话框

影响评估

  • 执行任意JavaScript代码
  • 通过EASDK和SmartWebview接口运行Java代码
  • 潜在的文件访问能力(通过FilePicker接口)

漏洞评级

CVSS评分:2.9(低危)

  • 攻击复杂度:高(需要用户安装恶意应用)
  • 用户交互:需要(用户需选择恶意应用)
  • 机密性影响:低(可能泄露单个文件)
  • 完整性影响:低(可能覆盖文件)

时间线

  • 2022年10月17日:漏洞报告提交
  • 2022年11月3日:确认漏洞,奖励500美元赏金
  • 2022年11月30日:修复完成
  • 2025年9月17日:公开披露

修复措施

Shopify工程团队已实施修复方案,漏洞不再可复现。修复重点加强了URL方案验证机制,防止恶意URL的执行。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计