Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
browser-pwn — 一个针对浏览器利用的更新资源集合。 | Kitploit
工具/GitHubGitHub/m1ghtym0/browser-pwn
漏洞利用模糊测试CTF论文与研究学习与教育精选资源二进制利用
GitHubm1ghtym0/browser-pwn

browser-pwn

一个针对浏览器利用的更新资源集合。

查看仓库
8321145年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Browser-Pwn

===

浏览器世界由四大主要参与者主导:

  • Chromium/Chrome(Blink 引擎)
  • Firefox(Gecko 引擎)
  • Safari(WebKit 引擎)
  • Edge(Blink 引擎,前身为 EdgeHTML 引擎)

以下内容分为两个部分:

  • 帮助理解其架构与实现,以及如何从源码构建它们的信息
  • 帮助找到让它们弹出计算器(calculator popping)的功能的信息

目录

  1. 引擎
    • 概述
    • Chromium
    • Firefox
    • Safari
    • Edge
  2. 漏洞利用
    • 概述
    • Chromium
    • Firefox
    • Safari
    • Edge
  3. 工具
  4. JavaScript 文档

引擎

引擎概述

  • JavaScript 引擎基础:好的、坏的和丑陋的
  • JavaScript 引擎基础:形状与内联缓存
  • JavaScript 引擎——它们究竟是如何工作的(视频)

浏览源码

当然,你可以使用自己最喜欢的配置来浏览源码。 不过,这些代码库相对较大,我尝试了好几种不同的配置,才找到适合我的方案。 如果你还没有合适的配置,下面是我的一些经验,或许对你有帮助:

  • CTags(+Vim):在跟踪引用和调用方面表现良好。如果你习惯用这种简约的配置浏览大型源码树,它可能是个不错的选择。 缺点是缺乏如今大多数大型 IDE 所具备的功能。
  • CLion:我的许多编码工作都在使用 JetBrains 产品,但 CLion 对我的体验不太好,尤其是在跟踪引用方面。当然,这可能是配置方面的问题。
  • Eclipse:我有一段时间没用它了,但它其实是个不错的选择。遗憾的是,索引器遍历代码需要消耗大量资源。
    • 这里是 Chromium 项目的配置说明,但其他项目也类似。
  • ccls+VSCode:这是我目前用过的最佳方案。ccls 在索引代码库时非常快,与 VSCode 配合得很好。你还可以将其与其他编辑器和 IDE 结合使用,参见 https://github.com/MaskRay/ccls/wiki/Editor-Configuration

Chromium(Blink)

项目 | GitHub

文章:

  • 什么是 Chromium?(德语)

Blink 的 JavaScript 引擎是 V8。

V8

项目 | GitHub | 源码 | 构建方法

构建(Ubuntu 18.04):

root@kitploit:~
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH=$PATH:./depot_tools
$ gclient
$ mkdir ./v8 && cd ./v8
$ fetch v8 && cd v8
$ git pull
$ gclient sync
$ ./build/install-build-deps.sh
$ tools/dev/gm.py x64.release
$ out/x64.release/d8

有用的标志:

  • --print-opt-code:优化编译器生成的代码
  • --print-byte-code:解释器生成的字节码
  • --trace-ic:调用点遇到的不同对象类型
  • --trace-opt 和 --trace-deopt:哪些函数被(去)优化
  • --trace-turbo:供 Turbolizer 可视化使用的 TurboFan 跟踪信息

文章:

  • V8 之旅

JIT 编译器:TurboFan

文档 | 博客

V8 为 TurboFan 提供了一个名为 Turbolizer 的可视化工具。

文章:

  • TurboFan 简介
Turbolizer 用法:
  1. 使用 --trace-turbo 运行 v8:d8 --trace-turbo foo.js
  2. 生成 json 文件,例如 turbo-foo-0.json
  3. 进入 v8/tools/turbolizer,按照 README.md 中的说明使用 npm 安装
  4. 启动目录服务,例如 python -m SimpleHTTPServer 8000
  5. 在浏览器中访问 localhost:8000 并打开 turbo-foo-0.json

Firefox(Gecko)

项目 | GitHub

Gecko 的 JavaScript 引擎是 SpiderMonkey。

SpiderMonkey

项目 | 源码 | 构建方法

源码
  • builtin

构建(Ubuntu 18.04):

root@kitploit:~
$ wget -O bootstrap.py https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py && python bootstrap.py
$ git clone https://github.com/mozilla/gecko-dev.git && cd gecko-dev
$ cd js/src
$ autoconf2.13

# This name should end with "_DBG.OBJ" to make the version control system ignore it.
$ mkdir build_DBG.OBJ
$ cd build_DBG.OBJ
$ ../configure --enable-debug --disable-optimize
# Use "mozmake" on Windows
$ make -j 6
$ js/src/js

JIT 编译器:IonMonkey

项目

SpiderMonkey 为 IonMonkey 提供了一个名为 IonGraph 的可视化工具。

源码
  • jit

Safari(WebKit)

项目 | GitHub

WebKit 的 JavaScript 引擎是 JavaScriptCore(JSC)。

JavaScriptCore

项目 | Wiki | 源码

文章:

  • http://www.filpizlo.com/papers.html
源码
  • 运行时:Source/JavaScriptCore/runtime

构建(Ubuntu 18.04):

root@kitploit:~
# sudo apt install libicu-dev python ruby bison flex cmake build-essential ninja-build git gperf
$ git clone git://git.webkit.org/WebKit.git && cd WebKit
$ Tools/gtk/install-dependencies
$ Tools/Scripts/build-webkit --jsc-only --debug
$ cd WebKitBuild/Release
$ LD_LIBRARY_PATH=./lib bin/jsc

JIT 编译器:LLInt + Baseline JIT + DFG JIT + FTL JIT

WebKit 拥有一个 4 层 JIT 编译器体系,体现了开销性能成本与性能收益之间的权衡。

文章:

  • WebKit JavaScript JIT 优化简介
  • B3 JIT 编译器介绍
源码
  • LLInt(低级解释器)
  • Baseline JIT
  • DFG JIT(数据流图 JIT)
  • FTL JIT(超光速即时编译器)

Edge(Blink/EdgeHTML)

项目 | GitHub

由于 Edge 已改用 Blink 和 Chromium 项目作为其渲染引擎,Edge 现在使用 v8。 最初,Edge 拥有自己的渲染引擎 EdgeHTML,它使用 ChakraCore 作为 JavaScript 引擎。

ChakraCore

GitHub | 构建方法

文档

  • 架构概述

源码

  • 运行时:Types
  • 运行时:Language

构建(Ubuntu 18.04):

root@kitploit:~
# To build ChakraCore on Linux: (requires Clang 3.7+ and Python 2)
$ apt-get install -y git build-essential cmake clang libicu-dev libunwind8-dev
$ git clone https://github.com/Microsoft/ChakraCore && cd ChakraCore
$ ./build.sh --cc=/usr/bin/clang-3.9 --cxx=/usr/bin/clang++-3.9 --arch=amd64 --debug
$ out/Debug/ch

漏洞利用

漏洞利用概述

  • Saelo:攻击 JavaScript 引擎
  • Awesome-Browser-Exploitation
  • 攻击 WebKit 应用程序(幻灯片)
  • Saelo:攻击客户端 JIT 编译器——BlackHat 2018
    • 视频
    • 幻灯片
  • j0nathanj:从零到零日漏洞(发现 Chakra 零日漏洞)
    • 视频 幻灯片
  • Saelo:Fuzzili——面向 JavaScript 引擎的(引导式)模糊测试
    • 视频
    • 幻灯片

Chromium 漏洞利用

文章

  • 通过边界检查消除利用 TurboFan
  • saelo:利用 JavaScript JIT 引擎中的逻辑漏洞
    • Phrack 文章
    • 41con 19' 幻灯片

CTF 挑战

  • 34c3:v9
    • 源码
    • WriteUp(利用脚本)
  • 35c3:Krautflare
    • 文件
    • WriteUp
    • WriteUp
  • CSAW-Finals-2018:ES1337
    • 文件+WriteUp
  • Plaid CTF 2018:掷骰子
    • 文件
    • WriteUp
    • WriteUp
  • Google CTF Finals 2018:Just In Time
    • 文件+WriteUp
    • 幻灯片
    • WriteUp
  • *CTF 2019:oob-v8
    • 文件
    • WriteUp
    • WriteUp
    • WriteUp
  • RealWorldCTF Quals 2019:accessible
    • 文件
    • WriteUp

真实世界

  • MobilePwn2Own 2013——Android 上的 Chrome
  • https://halbecaf.com/2017/05/24/exploiting-a-v8-oob-write/
  • niklasb:Chrome IPC 漏洞利用
    • 视频
    • 幻灯片
  • CVE-2019-5782 Write-Up
  • CVE-2019-5790
  • CVE-2019-5786 Chrome 远程代码执行漏洞分析

加固与缓解措施

  • 堆加固

Firefox 漏洞利用

文章

  • 玩转 SpiderMonkey
  • OR'LYEH?Firefox 上的阴影
  • IonMonkey 之旅:定位 CVE-2019-9810 的根本原因

CTF 挑战

  • 33c3:Feuerfuchs
    • 源码
    • WriteUp
    • WriteUp+构建
  • Blaze 2018:blazefox
    • 源码
    • WriteUp
    • WriteUp(利用脚本)
    • WriteUp(利用脚本)
    • 构建+WriteUp
  • 35c3 FunFox
    • 源码

真实世界

  • SpiderMonkey 漏洞利用入门
    • 文章
  • SpiderMonkey 中的释放后使用(Beta 53)
    • 文章
    • 演讲
    • 幻灯片
  • https://saelo.github.io/posts/firefox-script-loader-overflow.html
  • SpiderMonkey 中的释放后使用(64.0a1)
    • 文章
  • CVE-2019-11707 类型混淆
    • WriteUp
    • 报告
  • CVE-2019-11708 和 CVE-2019-9810
    • WriteUp

Safari 漏洞利用

CTF 挑战

  • RealWorldCTF 2018:面向新手的引擎
    • 文件
  • 35c3:WebKid
    • 源码
    • WriteUp

真实世界

  • http://www.phrack.org/papers/attacking_javascript_engines.html
    • 源码
    • WriteUp+构建
  • 模糊测试 WebKit 及 CVE-2019-8375 分析
  • CVE-2017-2446 WriteUp
  • https://saelo.github.io/posts/jsc-typedarray.slice-infoleak.html
  • https://github.com/saelo/pwn2own2018/tree/master/stage0
  • https://github.com/LinusHenze/WebKit-RegEx-Exploit
  • https://github.com/W00dL3cs/exploit_playground/tree/master/JavaScriptCore

加固与缓解措施

  • 堆加固
  • CagedPtr 源码 和 ArrayBuffer 示例

Edge

文章

  • bkth:Chakra 漏洞的故事
  • bkth:通过 JavaScript 编译器攻击 Edge
    • 视频
    • 幻灯片

CTF 挑战

  • Plaid 2017:chakrazy
    • WriteUp
  • N1CTF 2018:Chakra
    • 文件
  • RealWorldCTF Quals 2019:Appetizer
    • 文件
  • Trend Micro CTF 2019:ChakraCore 400
    • WriteUp
    • WriteUp
    • 利用代码

真实世界

  • bkth、S0rryMyBad:非 JIT 漏洞,JIT 利用

工具

库:

  • pwnjs(用于浏览器漏洞利用的 Javascript 库)

工具

  • int64.js
  • utils.js

调试

  • shadow —— jemalloc 堆漏洞利用框架(Firefox 使用的堆分配器)

JavaScript(ECMAScript)文档

  • 类型与值
  • 对象
  • 对象属性
下载工具