导语:研究人员在三星应用商店Galaxy Store中发现了一个安全漏洞,攻击者利用该漏洞可以通过XSS来让应用试点安装或启动应用,即远程攻击者可以在受害者手机上触发远程命令执行。
三星应用商店漏洞可安装恶意软件。
研究人员在三星应用商店Galaxy Store中发现了一个安全漏洞,攻击者利用该漏洞可以通过XSS来让应用试点安装或启动应用,即远程攻击者可以在受害者手机上触发远程命令执行。
深度链接(Deeplink)是指可以通过其他应用或浏览器调用,比如在微信或QQ上接收到好友分享的网页。三星应用商店Galaxy Store中,也有deeplink。当应用商店接收到适当的deeplink后就会处理,然后通过webview来展示。如果不检查deeplink的安全性,当用户访问含有deeplink的链接时,攻击者就可以在应用商店的webview环境下执行JS代码。
技术分析
有安全研究人员在三星应用商店Galaxy Store中发现了一个deeplink相关的安全漏洞,漏洞影响Galaxy Store v 4.5.32.4版本。
在访问三星的MCS Direct Page页面https://us.mcsvc.samsung.com/mcp25/devops/redirect.html 时,会显示如下信息:
如果有Galaxy Store app,就会发现需要2个参数:mcs_ru 和 testMode。有参数的情况下访问MCS 站点的结果如下:
可以看到其中包含了发送给三星应用处理的intent内容,比如三星支付、Bixby、Samsungapp、Gamelauncher等。
以发送给Samsungapp的deeplink为例:
samsungapps://MCSLaunch?action=each_event&url={{url}}
该deeplink发送后,Galaxy Store的处理流程如下:
App 通过字符串samsungapps检查deeplink;
如果其中有字符串MCSLaunch,APP就会进入MCS Webview处理;
最后取出URL参数,并在Webview.loadurl 中加载。
SamSung MCS Direct Page网站会分析URL的参数,并展示在网站上,但并不会编码,因此可能引发XSS错误:
PoC如下所示:
https://us.mcsvc.samsung.com/mcp25/devops/redirect.html?mcs_ru=a&testMode=1&%22id=%22%3Ca%20id%3d%22%3E%3Csvg/onload%3dalert(1)%3E%22%3E
将该代码与Galaxy Store相结合。Deeplink处理流程和在webview中的展示如下所示:
webSettings.setJavaScriptEnabled(true); // 允许JS执行
webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
WebView webView = this.c;
webView.addJavascriptInterface(new McsWebBridge(this, webView, new McsWebBridgeProvider()), "McsBridge");
WebView webView2 = this.c;
webView2.addJavascriptInterface(new McsWebBridge(this, webView2, new GmpWebBridgeProvider()), "GmpBridge");
this.l = new EditorialScriptInterface(this, this.c);
this.c.addJavascriptInterface(this.l, "GalaxyStore"); //添加JS接口,使得JS可以调用Java类中的函数
EditorialScriptInterface类的内容如下:
Class EditorialScriptInterface:
@JavascriptInterface
public void downloadApp(String str){...}
@JavascriptInterface
public void openApp(String str) {...}
其中有2个函数downloadApp 和 openApp可以获得APP id,并从应用商店下载或打开。因此,可以用JS代码来调用这两个函数,PoC代码如下所示:
window.GalaxyStore.openApp("com.sec.android.app.popupcalculator"); //打开app计算器
window.GalaxyStore.downloadApp("com.sec.android.app.popupcalculator");// 下载计算器app
网站PoC代码如下:
1 click
文件open.js会打开计算器APP。
文件down_and_open.js会下载然后打开计算器APP。
为成功利用受害者的服务器,需要首先让Chrome的CORS。
漏洞响应
目前,三星已经发布了补丁修复了该漏洞。
漏洞利用代码参见:https://ssd-disclosure.com/ssd-advisory-galaxy-store-applications-installation-launching-without-user-interaction/
本文翻译自:https://thehackernews.com/2022/10/samsung-galaxy-store-bug-couldve-let.html如若转载,请注明原文地址