CVE-2016-9079 公开漏洞利用程序的教育性实现,改编自原始 Exploit-DB/Metasploit 模块,以提供独立使用版本。
免责声明
本仓库严格仅供教育和研究目的使用。其中包含一个公开漏洞利用程序的 JavaScript 移植版本,用于研究历史上的浏览器漏洞利用技术。它不旨在用于对您不拥有或未经授权测试的系统进行未授权使用。
本仓库包含 CVE-2016-9079 公开漏洞利用程序的独立 JavaScript 实现,该漏洞是一个影响旧版 Mozilla Firefox 的**释放后使用(Use-After-Free,UAF)**漏洞。
该漏洞存在于 Firefox 的 SMIL(同步多媒体集成语言) 动画子系统中,在特定条件下可导致远程代码执行。
与以 Metasploit 模块形式分发的原始公开漏洞利用程序不同,本仓库提供了一种基于浏览器的实现,可通过简单的 HTTP 服务器进行托管。
本仓库旨在作为历史教育参考,而非现代漏洞利用工具。
在备考 OSCP 期间,我遇到了一台运行旧版易受攻击 Firefox 的 CTF 机器。
经过枚举后,浏览器漏洞利用似乎是有意安排的权限提升途径。
Exploit-DB 上公开的漏洞利用程序是以 Metasploit 模块形式实现的。由于 OSCP 考试限制使用 Metasploit,我希望有一个无需该框架即可执行的独立版本。
在研究了公开漏洞利用程序后,我将其改编为这个 JavaScript 实现。
需要重点说明的是:
CVE: CVE-2016-9079
类型: 释放后使用(UAF)
受影响组件: Firefox SMIL 动画(nsSMILTimeContainer)
影响: 远程代码执行
该漏洞通过特制的 SVG 动画对象触发,导致 Firefox 动画引擎内部出现释放后使用条件。随后,漏洞利用程序会执行堆操作,然后运行 ROP 链以实现代码执行。
本仓库出于教育目的保留了公开记录的漏洞利用技术。
index.html主入口点。
加载 JavaScript 组件,并在兼容的 Firefox 版本中打开时触发该漏洞。
worker.js包含漏洞利用逻辑的大部分内容,包括:
该实现改编自公开可用的漏洞利用程序。
README.md描述该漏洞、仓库用途和用法的文档。
预计与较新的 Firefox 版本不兼容。

python3 -m http.server 8000
导航到:
http://<server-ip>:8000/index.html
在易受攻击的 Firefox 实例中打开。

注意 - 您可能需要多次尝试该漏洞利用程序。
本仓库有意保持极简,不应被视为通用的漏洞利用框架。
与原始 Metasploit 实现相比:
因此,该实现只能在受控环境中与已知兼容版本一起使用。
尽管我并非原始漏洞利用程序的作者,但将其改编为独立实现让我接触到了许多有价值的概念,包括:
本仓库记录了我的部分 OSCP 备考过程,是对我在应用安全和漏洞赏金方面工作的补充。
本仓库仅出于教育目的分发。
原始漏洞利用技术的功劳归原始研究人员和公开漏洞利用程序的作者所有。本仓库仅出于教育目的将公开可用的实现改编为独立格式。