微软早前宣布他们将发布基于Chromium的Edge浏览器。继谷歌Chrome之后,微软的Edge将成为第二款基于Chromium的浏览器。
在2019年8月20日,微软宣布了一项新的漏洞奖励计划,主要针对基于Chromium的Edge浏览器。该项目规定,只有针对微软的代码所开发的攻击才能得到赏金,这意味着攻击面非常小。但为了弥补这一点,微软愿意提供了两倍的奖励。这意味着这款新浏览器中一个过审的漏洞可能价值3万美元。
在这篇文章中,我将解释是如何在这个新浏览器中发现3个不同的漏洞,从而赚到4万美元。我还惊喜地发现,我报告了这个项目中第一个有效漏洞。
New Tab Page (NTP) XSS
新标签页(NTP)是打开浏览器或打开新标签时看到的第一个页面。当然也有其他例外,我说的是默认设置下。NTP在新Edge浏览器中的一个独特之处在于它实际上是一个在线网站,地址为:
https://ntp.msn.com/edge/ntp?locale=en&dsp=1&sp=Bing
火狐的内置页是about:home/about:newtab
,Chrome浏览器的是chrome-search://local-ntp/local-ntp.html
。我们现在必须寻找微软对Chromium所做的新改动,这样才能拿到赏金。
这个漏洞的发现其实是一个意外。当我第一次打开新Edge浏览器时,我从未过多注意NTP,而是直接研究相对于Chromium来说比较独特的功能,被称Collections,尽管当时它貌似和悬赏无关,并且只能通过某个标志启用。但我仍然想看看是否能找到突破口。
Collections就像一个更强大、功能更丰富的书签,一旦你将一个网站添加到Collections中,它将获取标题、描述和图像,然后将其保存并以Twitter card的形式显示。所以其中一个测试是看看一旦我保存了一个标题中有HTML标签的网页,Collections栏是否会渲染标题中的HTML代码。测试后,发现答案是否定的。
研究了一会儿还是无效果,于是我决定暂去睡觉。到了第二天早上,当我打开新款Edge浏览器决定进行下一轮测试时,迎接我的是以下NTP:
你看到了吗?上图中那个又小又粗的字母“a”?
因为这是一个新的浏览器,所以我访问的所有网站几乎都会成为“顶部推荐”,展示在NTP中,而且貌似没有进行安全过滤。是的,现在没有任何东西阻止我执行javascript代码,以下是一段简单的PoC视频:
https://leucosite.com/Edge-Chromium-EoP-RCE/NTP-TOPSITE-XSS.mp4
你可能还没意识到这个漏洞的重要性。NTP上的XSS有什么用?实际上,NTP是一个高权限页面。我们在基于Chromium的浏览器上通过查看chrome
javascript对象内部数据来进行测试。
下图对比了普通网站上的chrome
对象和Edge设置页面上的chrome
对象。
其中edge://settings/profiles
包含更多的功能,而这些额外的功能也是我们感兴趣的高权限功能。
到目前为止,我们已将JS代码注入到高权限的页面中,从而实现了非法提权(EoP)。现在让我们来探索一下,在这种特殊的环境下,我们能做些什么。
潜在RCE
我开始研究那些高权限函数,看看是否能帮助我执行命令。很快我便在chrome.qbox
上发现了一个未被记录的对象,我在网络上找不到任何和它有关的详细资料。我猜测这一定是一个微软独有的对象,那它到底是什么呢?
https://leucosite.com/Edge-Chromium-EoP-RCE/qbox.mp4
我发现chrome.q