5分钟上手教程:CVE-2019-11708 Firefox浏览器漏洞利用链快速运行完整指南
5分钟上手教程:CVE-2019-11708 Firefox浏览器漏洞利用链快速运行完整指南
【免费下载链接】CVE-2019-11708Full exploit chain (CVE-2019-11708 & CVE-2019-9810) against Firefox on Windows 64-bit.项目地址: https://gitcode.com/gh_mirrors/cv/CVE-2019-11708
本文带你用 5 分钟完整跑通CVE-2019-11708 Firefox 浏览器漏洞利用链:这是一个面向 Windows 64 位 Firefox 的开源安全研究项目,组合 CVE-2019-9810 与 CVE-2019-11708 两个漏洞,实现从内容进程到父进程沙箱逃逸的浏览器完全接管。你只需克隆仓库、启动本地页面并开启 BigInt,就能看到桌面被"Slime Shady"蠕虫精灵攻占的完整演示效果。
🎯 项目能做什么:一次点击接管整个浏览器
这套利用链的杀伤力在于"两步走":
- CVE-2019-9810(IonMonkey 引擎缺陷):通过数据损坏获得特权 JS 执行能力(业内俗称God Mode),全程不劫持控制流,隐蔽性极高;
- CVE-2019-11708(
Prompt:OpenIPC 消息参数校验不足):诱导非沙箱的父进程访问攻击者指定的任意 URL,从而突破进程沙箱边界。
利用链按以下四步自动执行:
- 用 CVE-2019-9810 完成 God Mode 数据损坏,并刷新当前页面;
- 特权 JS 定位当前帧的消息管理器,触发 CVE-2019-11708;
- 父进程被诱骗访问攻击页面后,再次利用 CVE-2019-9810 拿到父进程的特权 JS;
- 此时整个浏览器(含沙箱)沦陷:下载投放
slimeshady.exe,并用Services.mm.loadFrameScript向每一个标签页注入特权脚本完成后门驻留。
🕸️ 漏洞利用链工作原理(新手秒懂版)
为什么需要两个漏洞组合?
Firefox 的多进程架构把网页内容关在沙箱进程里。单独一个漏洞通常只能打穿"一层":
| 漏洞 | 角色 | 突破的防线 |
|---|---|---|
| CVE-2019-9810 | 拿到沙箱内特权 JS | 沙箱内提权(God Mode) |
| CVE-2019-11708 | 让父进程打开任意 URL | 进程沙箱边界逃逸 |
| CVE-2019-9810(二次利用) | 在父进程再来一次 God Mode | 完全接管浏览器 |
这正是它被称为full exploit chain(完整利用链)的原因——一次点击,层层递进。
🚀 5分钟快速运行步骤(最快配置方法)
第一步:准备运行环境
- Windows 10(19H2)64 位系统;
- Firefox68.0a1自定义构建版(作者在项目 release 中提供了打包好的浏览器,内含
js.exe与私有符号信息); - 在
about:config中开启javascript.options.bigint(利用链依赖 BigInt 做地址运算与内存破坏控制)。
第二步:获取项目并启动本地服务
git clone https://gitcode.com/gh_mirrors/cv/CVE-2019-11708 cd CVE-2019-11708 python -m http.server 8000第三步:见证利用链触发
用 Firefox 打开http://localhost:8000/index.html,点击页面任意位置即触发利用。片刻之后,你会看到桌面涌现出成群的蠕虫精灵动画——这就是slimeshady.exepayload 在工作。
⚠️ 请仅在隔离虚拟机中运行,切勿用于真实环境或攻击他人。
🧬 编译桌面 Payload:让 Slime Shady 亲自上场
桌面蠕虫动画的源码在 payload 模块中,编译只需一行命令:在 VS 2017 的 x64 Native Tools 命令行中进入 payload 目录执行:
nmake构建过程由payload/Makefile编排,依次完成:
- 调用
payload/src/genheaders.py,把payload/sprites/下的 12 帧精灵图预处理为压缩 DIB 头; - 用
cl编译payload/src/payload.cc,产出payload\bin\payload.exe; - 自动启动生成的 payload。
payload 的绘制思路很精巧:用 GDI 创建数十个分层置顶透明窗口,由主窗口定时发送WM_TIMER触发全量重绘,最终通过StretchDIBits逐帧动画。
📁 关键文件导读(源码导航清单)
index.html—— 入口攻击页,onclick触发利用主流程,背景即上面那张 Cthulhu 概念图;cthulhu.js—— 利用链核心(约 736 行),包含 God Mode 数据损坏与父进程逃逸逻辑;ff-toolbox.js—— 内存读写工具库(约 931 行),提供 BigInt 地址运算、IAT 遍历等基础能力;payload/src/payload.cc—— GDI 蠕虫动画 payload 主程序;payload/src/genheaders.py—— 精灵图 → DIB 头文件生成脚本;payload/Makefile—— 一键编译脚本(kill → 清理 → 生成 → 编译 → 启动)。
⚠️ 安全与免责须知
- 本教程仅用于安全研究与学习,必须在隔离环境中运行;
- CVE-2019-11708 已随 mfsa2019-19 公告修复,且 Mozilla 在 2020 年 2 月通过 Bug 1602485 又加固了数据损坏原语,现代浏览器已不受影响;
- 利用链针对作者的特定 Firefox 构建调试,换版本运行可能需要自行适配。
❓ 常见问题速答
Q:为什么必须开启 BigInt?A:cthulhu.js依赖 BigInt 完成 64 位地址运算和受控内存写入,不开启则利用链无法推进。
Q:点击页面没反应怎么办?A:依次检查:Firefox 是否为 68.0a1 自定义构建版、系统是否 Windows 64 位、javascript.options.bigint是否为 true。
Q:利用成功的最终效果是什么?A:三重效果——桌面铺满 Slime Shady 动画精灵、每个已打开及新开的标签页被注入特权脚本、父进程获得持久化的导航后门能力。
【免费下载链接】CVE-2019-11708Full exploit chain (CVE-2019-11708 & CVE-2019-9810) against Firefox on Windows 64-bit.项目地址: https://gitcode.com/gh_mirrors/cv/CVE-2019-11708
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
