记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

详解Pwn2Own中价值5万美金的Firefox浏览器漏洞

2018-04-08 12:20

在最近的Pwn2Own 2018比赛中,Richard Zhu仅仅使用一个漏洞就成功攻破了Mozilla Firefox。在比赛中他将错误交给Mozilla后,在不到24小时内他们迅速进行了更新。在本文中我将仔细分析一下Richard Zhu在比赛中使用的漏洞。

漏洞分析

这个越界写入漏洞位于libvorbis,这是参考Vorbis音频编解码器解码实现的。此漏洞被命名为ZDI-18-263(CVE-2018-5146),位于库音频合成过程的深处。该漏洞只能由具有1型残留编码的音频文件触发,并且在残差计算过程中出现超出范围的写入。让我们看看易受攻击的函数vorbis_book_decodev_add():

1.png

该漏洞的核心是由于407行内部for循环中的数组边界检查不足造成的(上图)。使用精心制作的Vorbis音频文件指定足够大的book-> dim,可以使i大于n,并在408行内部for循环的界限以外访问a []数组。在Richard制作的Vorbis文件中,他已将book – > dim设置为96,n(未显示)设置为1.这允许他通过a [] C数组并覆盖进程内存的其他部分。

2.png

为了利用这个漏洞,Richard用交错的Javascript Arrays和ArrayBuffers来验证堆。他加载制作的Vorbis文件触发超出边界写入漏洞以覆盖阵列的长度。在损坏的Array中,Richard可以从损坏的Array中自由读取和写入ArrayBuffer。从那里他构建了一个假的Javascript对象并劫持了vtable,使用ROP获得代码执行,并启动了利用链的第二阶段。

从受害者的角度来看,他们都是浏览了一个网站,最终受到了攻击。从Richard的角度来看,他在Pwn2Own上的成功示范,使他获得了5万美元的收入。此漏洞的补丁很简单,这也是响应速度如此之快的原因之一。 Xiph团队在内部循环中增加了额外的检查来防止出界限制访问条件,还取消了手动循环展开优化,并在不同的残差解码函数中修正了类似的错误。

3.png

结论

Mozilla修复软件的时间确实令人惊讶,尤其是漏洞本身不在其代码库中。您可以在他们的博客中详细了解他们如何实现如此惊人的壮举的。另外就是这个bug还提醒了用户,针对浏览器的大型攻击很可能是通过旧的第三方库来寻找到机会的。

本文翻译自:https://www.zerodayinitiative.com/blog/2018/4/5/quickly-pwned-quickly-patched-details-of-the-mozilla-pwn2own-exploit如若转载,请注明原文地址: http://www.hackdig.com/04/hack-51621.htm

知识来源: www.4hou.com/vulnerable/11006.html

阅读:96544 | 评论:0 | 标签:漏洞 浏览器漏洞

想收藏或者和大家分享这篇好文章→复制链接地址

“详解Pwn2Own中价值5万美金的Firefox浏览器漏洞”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于累土;黑客之术,始于阅读

推广

工具

标签云