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

本文详细分析了Shopify移动应用中存在的URL方案验证绕过漏洞,攻击者可通过恶意构造的data:或javascript:URL在应用WebView中执行任意JavaScript代码,可能访问设备文件。漏洞需要恶意应用安装和用户交互才能利用。

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

漏洞概述

在Shopify移动应用程序中发现一个安全漏洞,该漏洞允许绕过NavigationActivity组件中的URL方案验证。攻击者可以通过构造使用data:javascript:方案的恶意URL,在应用WebView上下文中执行JavaScript代码。

技术细节

应用信息

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

漏洞原理

研究发现,com.shopify.mobile应用未验证作为额外参数传递给com.shopify.mobile.navigation.NavigationActivity的URL方案,这可能导致在应用WebView中加载任意HTML内容(包括JS代码),并接管SmartWebview和EASDK JavaScript接口。

复现步骤

使用提供的APK文件进行测试,执行以下命令:

1
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);//'

影响分析

  • JavaScript代码执行能力
  • 通过EASDK和SmartWebview接口运行Java代码的潜在风险
  • 可能通过暴露的接口访问设备文件

利用条件

  • 需要安装恶意应用
  • 需要显著的用户交互
  • 攻击复杂度较高

时间线

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

CVSS评分

基础评分:2.9(CVSS:3.0/AV:P/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N)

评分说明

  • 攻击复杂度:高 - 需要目标用户安装恶意应用并错误选择
  • 用户交互:需要 - 受害者必须在安装后选择恶意应用
  • 机密性影响:低 - 设备文件可能是最有价值的暴露内容
  • 完整性影响:低 - 理论上可能通过下载覆盖文件

修复状态

Shopify工程师已实施修复措施,该漏洞不再可复现。

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