内容简介:我测试的对象是 Yahoo! Mail iOS APP应用,也就是雅虎邮箱的iOS版本,在该APP应用程序的xml文件中存在一个存储型XSS漏洞。攻击者可以利用XML特性构造任意HTML/Javascript代码嵌入邮件,在该APP用户打开邮件时,都可以实现这种任意代码渲染呈现,极端点来说,利用XML的实体扩展攻击,可以形成DoS攻击,造成APP服务崩溃。XML实体扩展攻击:XML Entity Expansion实现,通过在XML的DOCTYPE中创建自定义实体的定义实现,比如,这种定义可以在内存中生成
今天我要分享的是参与雅虎(Yahoo!)漏洞众测项目发现的一个关于雅虎邮箱 iOS应用的漏洞,最终,凭借该漏洞,我进入了雅虎安全名人堂并获得了$3500美金奖励。
漏洞情况
我测试的对象是 Yahoo! Mail iOS APP应用,也就是雅虎邮箱的iOS版本,在该APP应用程序的xml文件中存在一个存储型XSS漏洞。攻击者可以利用XML特性构造任意HTML/Javascript代码嵌入邮件,在该APP用户打开邮件时,都可以实现这种任意代码渲染呈现,极端点来说,利用XML的实体扩展攻击,可以形成DoS攻击,造成APP服务崩溃。
XML实体扩展攻击:XML Entity Expansion实现,通过在XML的DOCTYPE中创建自定义实体的定义实现,比如,这种定义可以在内存中生成一个比XML的原始允许大小大出很多的XML结构,用它来使这种攻击得以耗尽网络服务器正常有效运行的必需内存资源。
漏洞分析
漏洞初报
在任意的雅虎邮箱登录网页或客户端中登录进入你的雅虎邮箱,然后上传以下样式的一个xml文件作为邮件附件,之后,把这封带以下 yahoo-xss.xml 附件的邮件,发送到你自己的雅虎邮箱或另一雅虎测试邮箱中去。
<?xml version=”1.0″ encoding=”utf-8″?> <svg xmlns=”http://www.w3.org/2000/svg”> <script>prompt(document.location)</script> </svg>
用雅虎邮箱iOS客户端(Yahoo! Mail iOS APP),进入你的收件测试雅虎邮箱,查看 yahoo-xss.xml 附件,打开它,看看是否有XSS反应。结果是当然有的,会吓了你一跳。如下:
注意:我也搞不懂啥原因,雅虎邮箱iOS应用中的XML渲染机制非常怪异危险。如果你收到包含以上yahoo-xss.xml 附件的多个附件,那么,即使你打开其它附件的时候,这个 yahoo-xss.xml 触发的存储型XSS都会解析跳出。
我匆匆忙忙地上报了这个漏洞,以下是雅虎安全团队人员在HackerOne上给我的回应:
到了这步,接下来我要做的就是想办法来最大化利用这个漏洞,看看能对雅虎邮箱iOS应用形成什么比较坏的安全威胁和影响。但无奈我一时半会也没什么头绪,只好先放一放。
漏洞续报
后来有一天,我突然想到了一种提升漏洞利用且安全无害的方法,那就是我可以用HTTP请求,像“GET”方式一样,尝试对本地APP客户端资源进行获取!BingGo!我一试,真成了!我可以用这种方法获取到雅虎邮箱iOS应用的整个缓存数据,其中包括用户cookie、通讯录列表、邮件内容等等。
漏洞利用复现
首先,在任意雅虎邮箱网页或客户端中登录你的雅虎邮箱账户,上传一个如下包含如下代码的XML文件,然后,把它作为附件发送到你的另外一个测试雅虎邮箱中(受害者邮箱)。
在你的雅虎测试邮箱中打开这个收到的XML附件,基于上面我提到的那个“怪异”的XML解析原因,这里可以想像一种情况:当攻击者向你发送了一个PPT文档,但在附件中也附加了以上那个可以触发XSS的XML文件,那么,当你打开收到的PPT文档时,这个XML文件也就会同时触发XSS反应。也就是说,无论你有多少个附件(包括视频附件),只要包含以上那个XML附件,你打开其它任何一个附件,都会奇怪地触发XML文件中XSS漏洞。
利用该漏洞,构造key.xml,我可以获取受害者邮箱中包括发送者、接收者和联系人在内的通讯录信息。在XML附件代码中,XSS漏洞会首先显示客户端的浏览器版本信息,然后是定位文件位置,再之后是获取邮件列表信息(这里看网速,估计需要30秒左右的时间)。之后,点击key.xml的OK之后,邮件列表信息就通过GET方式回传给攻击者了,像下图这样。我是在内部局域网中做的测试,我的Server接收端用nc -lvvv 8090开启了8090端口监听:
利用该漏洞,构造cachedbpost.xml,我可以获取受害者的Cookie信息。点击cachedbpost.xml的OK之后,整个Cache.db文件就会通过POST方式回传给攻击者,如下图所示。我在内部局域网中做的测试,我的Server接收端用nnc -lvvv 8090 > yahoo.db命令开启了8090端口监听,并把Cache.dbd存储为yahoo.db:
收到完整的Cache.db文件之后,我们把其中的标题头内容过滤,用以下命令检索形成完整的受害者cookie信息:
strings yahoo.db | grep -i Cookie -A 10 -B 5
另外,还可以按http服务端来进行枚举,形成对特定网站的请求cookie:
strings yahoo.db | grep -i https
雅虎安全团队工作人员接收到该漏洞后,迅速进行了分类、修复和处置。
漏洞影响
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 挖洞姿势:浅析命令注入漏洞
- 挖洞经验 | Vine用户隐私信息泄露漏洞($7560)
- 挖洞经验 | 雅虎(Yahoo)的速率限制漏洞($2k)
- 挖洞经验 | 知名在线教育平台的IDOR漏洞
- 挖洞经验 | 不被PayPal待见的6个安全漏洞
- 挖洞经验 | 看我如何发现Paypal内部信息泄露漏洞
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
游戏化革命:未来商业模式的驱动力
[美]盖布·兹彻曼、[美]乔斯琳·林德 / 应皓 / 中国人民大学出版社有限公司 / 2014-8-1 / CNY 59.00
第一本植入游戏化理念、实现APP互动的游戏化商业图书 游戏化与商业的大融合、游戏化驱动未来商业革命的权威之作 作者被公认为“游戏界的天才”,具有很高的知名度 亚马逊五星级图书 本书观点新颖,游戏化正成为最热门的商业新策略 游戏化是当今最热门的商业新策略,它能帮助龙头企业创造出前所未有的客户和员工的参与度。商业游戏化策略通过利用从游戏设计、忠诚度计划和行为经济学中所汲取......一起来看看 《游戏化革命:未来商业模式的驱动力》 这本书的介绍吧!