CVE-2020-0674
CVE-2020-0674 是传统 jscript 引擎中的一个释放后使用漏洞。可在 Internet Explorer 中触发。此处的利用代码由 maxpl0it 编写,但漏洞本身由 Qihoo 360 发现,且已在野外被利用。该利用仅用于弹出计算器。
可在此处找到利用分析文章。
漏洞概述
- 该漏洞存在于使用比较函数时的 Array
sort 方法中。
- 比较函数的两个传入参数未被垃圾回收器追踪,因此在垃圾回收被调用后,它们将指向已释放的内存。
利用说明
- 该利用代码专门针对 Windows 7 编写,但可能无需太多麻烦即可移植。
- 该利用代码针对 x64 版本的 IE 编写,因此可在以下浏览器配置上运行(并已测试):
- IE 8(x64 版本)
- IE 9(x64 版本)
- IE 10(启用增强保护模式或启用 TabProcGrowth)
- IE 11(启用增强保护模式或启用 TabProcGrowth)
- 值得注意的是,Windows 7 上的增强保护模式只是启用了 x64 版本的浏览器进程,因此这并非沙箱逃逸,而是实际上没有额外的沙箱。具有讽刺意味的是,由于此利用针对 x64,EPM 反而使其能够工作。
- 该利用代码并非为了完全绕过 EMET(仅实现了栈迁移检测绕过),但最终版本(5.52)在运行利用时似乎不会触发 EAF+,而 5.5 版本会(至少在 Windows 7 x64 上如此)。因此,IE 11 在增强保护模式下并启用最大 EMET 设置时,允许利用生效。
- 该利用代码包含大量注释,但为了更好地理解其工作原理及每个阶段的具体操作,可将
var debug = false; 改为 var debug = true;,然后打开开发者控制台查看日志,或保持控制台关闭而查看 alert 弹出窗口(这可能有点烦人)。