漏洞利用的艺术 攻击 JavaScript 引擎 一项关于 JavaScriptCore 和 CVE-2016-4622 的研究

发布于 2023-11-15 06:21:35 字数 1278 浏览 32 评论 0

本文努力通过一个具体的漏洞来介绍 JavaScript 引擎漏洞利用这个话题,特定目标为WebKit 中使用的引擎 JavaScriptCore。

我们所谈论的漏洞是 CVE-2016-4622,这个漏洞是在 2016 年早期被 yours truly 发现的,然后被 zerodayinitiative 报道出来,编号为 ZDI-16-485 [1]。攻击者利用漏洞可以造成地址泄漏并且能够向引擎中注入伪造的 JavaScript 对象。把这些合并在一起将会在渲染进程中导致远程代码运行。漏洞在版本 650552a 中已被修复。本文中的代码片段取自生皮本 commit 320b1fc,是最后一个可以攻击的版本。漏洞的提出大概是在 1 年前的版本 commit 2fa4973。所有的利用代码在 Safari 9.1.1 中测试通过。

0 - 引言
1 - JavaScriptCore 概览
1.1 - 值,虚拟机和(NaN-)boxing
1.2 - 对象和数组
1.3 - 函数
2 - 漏洞
2.1 - 易受攻击的代码
2.2 - 关于 JavaScript 的类型转换
2.3 - 使用 valueOf 进行漏洞利用
2.4 - 关于漏洞的反思
3 - JavaScriptCore 堆
3.1 - 垃圾收集器基础
3.2 - 标记空间
3.3 - 拷贝空间
4 - 构建漏洞利用原语
4.1 - 前提:Int64
4.2 - addrof 和 fackobj
4.3 - 漏洞利用计划
5 - 理解 JSObject 系统
5.1 - 属性存储
5.2 - JSObject 内部
5.3 - 关于结构
6 - 漏洞利用
6.1 - 预测结构 ID
6.2 - 整合:伪造一个 Float64Array
6.3 - 执行 shellcode
6.4 - 继续存在的垃圾收集器
6.5 - 总结
7 - 滥用渲染器进程
7.1 - WebKit 进程和权限模型
7.2 - 同源策略
7.3 - 盗取电子邮件
8 - 引用
9 - 源码

下载地址:https://www.wenjiangs.com/wp-content/uploads/staticcdn/pdf/dokumen.pub_javascript-s-3545403.zip

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

世俗缘

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文