大家好!很感谢大家能够抽出宝贵的时间来阅读这篇文章。
本文简介
在此之前,我曾发现了一个非常奇怪的漏洞,这个漏洞也成功引起了我的注意。今天,我将会在这篇文章中跟大家分享一些关于这个漏洞的信息。目前,这个漏洞还没有名字,而且也没有新闻对其进行过报道。也许大家只是觉得这个漏洞无关紧要吧!
我之所以要发表这篇文章,就是为了告诉大家,有的时候你只需要稍微改变一下自己思考方式,换一个角度来看待某些东西,你就会发现其中存在的问题。
漏洞的概念验证实例:
一开始的时候,我只是想要找到一个RFD漏洞。虽然我没有找到,但是我却发现了另一个非常关键的安全漏洞。
当时,我正在对雅虎公司的一个专门提供赛车比赛的子域名网站(fantasysports)进行分析。在这个网站中,技术人员加入了一种能够提前预览部分比赛视频的功能。当我对这个功能进行安全分析时我才发现,当终端用户正在预览比赛视频或者信息时,用户的计算机中将会出现一个.pdf文件。而这个文件也引起了我的注意。
于是,我开始对这个文件进行分析和研究。在我进行分析的过程中,我的脑海里突然萌生了一个我认为非常有趣的想法,我是不是能够在雅虎域名中调用或下载远程文件呢?
那么问题来了:我该怎么做呢?
答案很简单。
Preview_1.pdf文件的URL地址如下:
http://racing.fantasysports.yahoo.com/auto/fanballguidepdf/Preview_1.pdf?file=preview&race=1
现在,我就可以利用远程文件的URL地址来调用或下载雅虎域名中的文件了。那么关键的地方来了,这也就意味着,我可以直接将雅虎域名中的Preview_1.pdf文件替换成其他的恶意文件了。
比如说,我可以利用http://www.7-zip.org/a/7z1506.exe中的恶意文件替换Preview_1.pdf。因此,我就可以直接利用7.zip来对这个.exe恶意文件进行压缩,并上传了。(但是请注意,根据雅虎公司的网络安全策略,你应该尽量降低这种恶意操作给终端用户所带来的影响)
所以,我最终的恶意Payload如下:
当我按下回车键时,奇迹就这样发生了!
现在,我就可以从雅虎域名中下载或调用其他域名中的远程文件了。
问题的关键到底在哪?
由于雅虎网站的文件调用机制,雅虎会在其子域名中利用类似“URL+任意文件”的形式来远程调用服务器中的文件,这也就使得这个问题变得更加的严重了。攻击者可以将这个URL地址发送给目标用户,如果用户点击了这个URL地址,那么用户的计算机将会受到攻击。
这个问题如何修复呢?
1) 禁用“预览”功能。
2) 存在设计缺陷的URL地址将会产生如下图所示的错误提示。
概念验证视频:
视频地址:https://youtu.be/BAWMgDnwgdI
在我将这个漏洞报告给雅虎公司的安全团队之后,该团队的安全研究人员告诉我这就是一个RFD漏洞。于是我便向他们发送了一封电子邮件,并在邮件中跟他们解释了RFD漏洞与我所发现的这个漏洞之间的区别在哪里。
在此,我要感谢@dsopas,他很清楚我所要表达的意思。
他们给我的回复信息如下图所示:
他们解释称,这个漏洞实际上是一个Open Redirect漏洞。于是,我又写了一封电子邮件来向他们解释Open Redirect漏洞与我所发现的这个漏洞之间的区别是什么。
最后,他们同意了我的观点,他们也承认了这个漏洞既不是RFD漏洞,也不是Open Redirect漏洞,而是一种新型的攻击漏洞。
随后,雅虎公司的安全团队也给我提供了一定的奖励。
事件时间轴:
2015年08月31日:我将这个漏洞提交给了雅虎公司的安全团队。
2015年09月01日:首次收到了雅虎安全团队的漏洞反馈信息。
2016年02月02日:雅虎安全团队修复了这个漏洞,并让我等待关于漏洞奖励的通知。
2016年02月22日:雅虎安全团队告诉我这是一个RFD漏洞。
2016年02月22日:我向他们解释了RFD漏洞与我所发现的漏洞之间的区别。
2016年03月08日:雅虎安全团队证实这个漏洞并非RFD漏洞,并回复我这是一个Open Redirect漏洞。
2016年03月08日:我向他们解释了Open Redirect漏洞与我所发现的漏洞之间的区别。
2016年03月11日:雅虎安全公司发布了漏洞公告。
2016年03月27日:对漏洞信息进行了公布