欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

滥用协议载入本地文件,绕过HTML5沙盒

来源:本站整理 作者:佚名 时间:2016-11-29 TAG: 我要投稿

10月25日,@MSEdgeDev研究员在twitter上发出了一个链接,它引起了我的注意。因为当我用Chrome浏览器点击这个链接时Windows应用商店被打开了。这可能不会让你感到惊讶,但它确实是让我吃了一惊!
因为据我所知,Chrome具有这样一个良好的特性:在打开外部程序之前会首先询问用户。但是点击这个链接之后却并没有询问用户就直接打开了。
这一点是与众不同的,它引起了我的注意,因为我从来没有允许过在Chrome中打开Windows应用商店。的确是有一些扩展和协议可以自动打开,但是我却从来没有批准过Windows应用商店自动打开。

这个Twitter短链接首先会重定向到
https://aka.ms/extensions-storecollection
然后它又重定向到另一个有趣的链接:
ms-windows-store://collection/?CollectionId=edgeExtensions
这是一个我不知道的协议,所以我立即尝试在注册表中搜索它,因为大多数协议的关联信息都储存在注册表中。 搜索“ms-windows-store”立即返回了PackageId中的字符串结果,这似乎是Windows应用商店程序。

请注意我们是处在一个名为“Windows.Protocol”的注册表键中,我上下滚动了一下,看看是否存在其他应用程序。结果发现,许多的程序(包括MS Edge)都注册有自己的协议。这是一个好消息,因为它直接从浏览器开辟了一个全新的攻击面。但先让我们按F3看看是否可以找到其他的搜索匹配。

(从上图可以看出)ms-windows-store:协议似乎可以接受搜索参数,所以我们可以尝试直接从Google Chrome浏览器来打开我们的自定义搜索。并且在事实上,Windows应用商店似乎是使用Edge引擎来渲染HTML的,这就很有趣了,因为我们可以尝试对它进行XSS或者如果是本地的应用可以尝试发送大量的数据,看看会发生什么事情。

但我们暂时不去尝试这些,让我们先回到注册表编辑器中,继续按F3看看还能找到什么。

这个东西也很有趣,因为它给了我们如何快速的找到更多协议的线索,如果他们都是用字符串“URL:”作为开头的。让我们来重新搜索一下“URL:”,看看我们能找到什么。按[Home]键可以使我们返回到注册表顶部(译注:因为注册表编辑器默认从当前打开的路径开始搜索,所以作者要先回到根目录去),搜索“URL:”立即就返回了第一个匹配:“URL:about:blank”,这证实了我们的猜测。
再按一次F3,我们找到了bingnews(译注:必应新闻的App???)的协议,但这次Chrome需要经过我们同意才能打开它。没关系,让我们在Edge上试试看会发生什么。它成功的打开了!下一个匹配的注册表项是计算器的协议。这能成功的工作吗?

Wow!我想这会伤害到一些exp作者的感情。他们现在还要弹点什么程序出来呢?(译注:因为漏洞POC一般都是弹计算器)calc和notepad不需要任何内存破坏漏洞就可以被打开,而cmd.exe现在又已经弃用了取而代之的是powershell。微软毁掉了你们这些人的乐趣。
这可能是一个很好的机会来枚举所有可加载的协议,来找出哪些应用程序可以接受参数。所以我们可以尝试注入代码。代码可能是二进制的也可能是纯JavaScript,这取决于应用程序是怎么编写(译注:coded,也有可能是指编码?)的以及它是如何处理参数的。这里有很多有趣的东西可以去搞,如果我们继续寻找协议,我们会发现可以打开大量的应用程序,甚至包括糖果大爆险(译注:国外的一个消消乐游戏?),我甚至都不知道我的电脑上安装过它。
通过这几次F3我学到了很多。例如,有一个microsoft-edge:协议,它会在新标签页中加载URL。它看起来似乎意义不大,直到我们想起了HTML页面应该有一个打开上限。弹出窗口屏蔽器(Pop-up Blocker)会阻止我们打开20个
microsoft-edge:http://www.google.com
标签页吗?
测试链接在这里:http://unsafe.cracking.com.ar/demos/edgeprotocols/popups.html

我们来看看HTML5沙箱怎么样?如果你不是很熟悉它,那么它只是一种使用sandbox iframe属性和sandbox http头对网页施加的限制。例如,如果我们想在一个iframe中渲染内容,并且要确保它不运行javascript(甚至不能打开新标签页),那么我们只需使用此标签:

之后渲染的页面会被完全限制住。基本上它就只会渲染HTML和CSS了,就没有javascript或像访问cookie这样的东西了。事实上,如果我们控制沙盒粒度,并允许新建窗口或标签页,那么所有的这些新建的窗口和标签页以及打开的链接都会继承沙盒属性。然而,使用microsoft-edge协议可以完完全全的绕过这一点。

[1] [2] [3] [4]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载