Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Tools/GitHubGitHub/m1ghtym0/browser-pwn
ExploitationFuzzingCTFPapers & ForschungLernen & BildungKuratierte RessourcenBinary-Exploitation
GitHubm1ghtym0/browser-pwn

browser-pwn

Eine aktualisierte Sammlung von Ressourcen, die auf Browser-Exploitation abzielen.

Repository anzeigen
832114vor 5 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Browser-Pwn

Die Welt der Browser wird von 4 Hauptakteuren dominiert:

  • Chromium/Chrome (Blink-Engine)
  • Firefox (Gecko-Engine)
  • Safari (WebKit-Engine)
  • Edge (Blink-Engine (ehemalige EdgeHTML-Engine))

Das Folgende ist in zwei Teile gegliedert:

  • Informationen, die helfen, ihre Architektur und Implementierung zu verstehen und sie aus den Quellen zu bauen
  • Informationen, die helfen, ihre Taschenrechner-Pop-Funktion zu finden

Inhaltsverzeichnis

  1. Engines
    • Übersicht
    • Chromium
    • Firefox
    • Safari
    • Edge
  2. Exploitation
    • Übersicht
    • Chromium
    • Firefox
    • Safari
    • Edge
  3. Werkzeuge
  4. JavaScript-Dokumentation

Engines

Engine-Übersicht

  • Javascript-Engine-Grundlagen: die guten, die schlechten und die hässlichen
  • Javascript-Engine-Grundlagen: Shapes und Inline-Caches
  • JavaScript-Engines - wie funktionieren sie überhaupt? (Video)

Quellen durchsuchen

Natürlich kannst du dein eigenes Lieblings-Setup verwenden, um die Quellen zu durchsuchen. Allerdings sind diese Repos relativ groß, und ich habe einige verschiedene Setups ausprobiert, bis ich etwas gefunden habe, das für mich funktioniert hat. Wenn du also noch kein gutes Setup hast, findest du hier ein paar meiner Erfahrungen, die dir helfen könnten:

  • CTags (+Vim): Funktioniert gut beim Verfolgen von Referenzen und Aufrufen. Wenn du es gewohnt bist, große Quellcode-Bäume mit diesem puristischen Setup zu navigieren, kann es eine gute Option für dich sein. Der Nachteil ist natürlich das Fehlen der Funktionen, die die meisten großen IDEs heutzutage mitbringen.
  • CLion: Ich nutze JetBrains-Produkte für viele meiner Programmieraktivitäten, aber CLion hat für mich nicht gut funktioniert, besonders beim Verfolgen von Referenzen. Natürlich könnte das an Setup-Problemen liegen.
  • Eclipse: Ich habe es eine Weile nicht benutzt, aber es hat sich als gute Option herausgestellt. Leider benötigt der Indexer viele Ressourcen, um den Code zu durchlaufen.
    • Hier ist eine Setup-Beschreibung für das Chromium-Projekt, aber es funktioniert für die anderen Projekte ähnlich.
  • ccls+VSCode Das ist die beste Option für mich bisher. ccls ist sehr schnell beim Indizieren der Repos und funktioniert großartig mit VSCode. Du kannst es auch mit anderen Editoren und IDEs kombinieren, siehe https://github.com/MaskRay/ccls/wiki/Editor-Configuration

Chromium (Blink)

Projekt | GitHub

Artikel:

  • Was ist Chromium? (DE)

Die JavaScript-Engine von Blink ist V8.

V8

Projekt | GitHub | Quelle | Build-Anleitung

Build (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

Nützliche Flags:

  • --print-opt-code: vom optimierenden Compiler erzeugter Code
  • --print-byte-code: vom Interpreter erzeugter Bytecode
  • --trace-ic: verschiedene Objekttypen, die eine Aufrufstelle antrifft
  • --trace-opt und --trace-deopt: welche Funktionen (de)optimiert werden
  • --trace-turbo: TurboFan-Traces für die Turbolizer-Visualisierung

Artikel:

  • Eine Tour durch V8

JIT-Compiler: TurboFan

Doku | Blog

V8 bietet eine Visualisierung für TurboFan namens Turbolizer

Artikel:

  • Einführung in TurboFan
Turbolizer-Verwendung:
  1. Führe v8 mit --trace-turbo aus: d8 --trace-turbo foo.js
  2. Erzeugt JSON-Dateien, z. B. turbo-foo-0.json
  3. Gehe zu v8/tools/turbolizer und installiere es mit npm, wie in README.md beschrieben
  4. Stelle das Verzeichnis bereit, z. B. python -m SimpleHTTPServer 8000
  5. Rufe localhost:8000 auf und öffne turbo-foo-0.json

Firefox (Gecko)

Projekt | GitHub

Die JavaScript-Engine von Gecko ist Spidermonkey.

Spidermonkey

Projekt | Quelle | Build-Anleitung

Quellcode
  • builtin

Build (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-Compiler: IonMonkey

Projekt

Spidermonkey bietet eine Visualisierung für IonMonkey namens IonGraph

Quellcode
  • jit

Safari (Webkit)

Projekt | GitHub

Die JavaScript-Engine von Webkit ist JavaScriptCore (JSC).

JavaScriptCore

Projekt | Wiki | Quelle

Artikel:

  • http://www.filpizlo.com/papers.html
Quellcode
  • Runtime: Source/JavaScriptCore/runtime

Build (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-Compiler: LLInt+ Baseline JIT + DFG JIT + FTL JIT

WebKit hat ein 4-Schichten-JIT-Compiler-System, das den Kompromiss zwischen Overhead-Leistungskosten und Leistungsgewinn darstellt.

Artikel:

  • Einführung in WebKits JavaScript-JIT-Optimierungen
  • Einführung in den B3-JIT-Compiler
Quellcode
  • LLInt (Low Level Interpreter)
  • Baseline JIT
  • DFG JIT (Data Flow Graph JIT)
  • FTL JIT (Faster Than Light Just In Time compiler)

Edge (Blink/EdgeHTML)

Projekt | GitHub

Da Edge auf Blink und das Chromium-Projekt als Rendering-Engine umgestellt hat, verwendet Edge jetzt V8. Ursprünglich hatte Edge eine eigene Rendering-Engine namens EdgeHTML, die die JavaScript-Engine ChakraCore verwendete.

ChakraCore

GitHub | Build-Anleitung

Doku

  • Architektur-Übersicht

Quellcode

  • Runtime: Types
  • Runtime: Language

Build (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

Exploitation

Exploitation-Übersicht

  • Saelo: JavaScript-Engines angreifen
  • Awesome-Browser-Exploitation
  • WebKit-Anwendungen angreifen (Folien)
  • Saelo: Angriffe auf clientseitige JIT-Compiler - BlackHat 2018
    • Video
    • Folien
  • j0nathanj: Von Null auf ZeroDay (Einen Chakra-Zero-Day finden)
    • Video Folien
  • Saelo: Fuzzili - (Geführtes) Fuzzing für JavaScript-Engines
    • Video
    • Folien

Chromium Pwn

Artikel

  • TurboFan durch Bounds-Check-Elimination ausnutzen
  • saelo: Ausnutzen von Logikfehlern in JavaScript-JIT-Engines
    • Phrack-Artikel
    • 41con-19'-Folien

CTF-Challenges

  • 34c3: v9
    • Quellen
    • WriteUp (Exploit-Skript)
  • 35c3: Krautflare
    • Dateien
    • WriteUp
    • WriteUp
  • CSAW-Finals-2018: ES1337
    • Dateien+WriteUp
  • Plaid CTF 2018: Roll a dice
    • Dateien
    • WriteUp
    • WriteUp
  • Google CTF Finals 2018: Just In Time
    • Dateien+WriteUp
    • Folien
    • WriteUp
  • *CTF 2019: oob-v8
    • Dateien
    • WriteUp
    • WriteUp
    • WriteUp
  • RealWorldCTF Quals 2019: accessible
    • Dateien
    • WriteUp

RealWorld

  • MobilePwn2Own 2013 - Chrome on Android
  • https://halbecaf.com/2017/05/24/exploiting-a-v8-oob-write/
  • niklasb: Chrome-IPC-Exploitation
    • Video
    • Folien
  • CVE-2019-5782 Write-Up
  • CVE-2019-5790
  • CVE-2019-5786 Analyse der Chrome-Schwachstelle zur Remote-Codeausführung

Härtung & Mitigationen

  • Heap-Härtung

Firefox Pwn

Artikel

  • Mit SpiderMonkey herumspielen
  • OR'LYEH? Der Schatten über Firefox
  • Eine Reise in IonMonkey: Root-Cause-Analyse von CVE-2019-9810

CTF-Challenges

  • 33c3: Feuerfuchs
    • Quellen
    • WriteUp
    • WriteUp+Build
  • Blaze 2018: blazefox
    • Quellen
    • WriteUp
    • WriteUp (Exploit-Skript)
    • WriteUp (Exploit-Skript)
    • Build+WriteUp
  • 35c3 FunFox
    • Quellen

RealWorld

  • Einführung in die SpiderMonkey-Exploitation
    • Artikel
  • Use-after-free in Spidermonkey (Beta 53)
    • Artikel
    • Vortrag
    • Folien
  • https://saelo.github.io/posts/firefox-script-loader-overflow.html
  • Use-after-free in SpiderMonkey (64.0a1)
    • Artikel
  • CVE-2019-11707 Type Confusion
    • WriteUp
    • Report
  • CVE-2019-11708 & CVE-2019-9810
    • WriteUp

Safari Pwn

CTF-Challenges

  • RealWorldCTF 2018: Engine für Neulinge
    • Dateien
  • 35c3: WebKid
    • Quellen
    • WriteUp

RealWorld

  • http://www.phrack.org/papers/attacking_javascript_engines.html
    • Quelle
    • WriteUp+Build
  • WebKit fuzzen und Analyse von 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

Härtung & Mitigationen

  • Heap-Härtung
  • CagedPtr Quelle & ArrayBuffer-Beispiel

Edge

Artikel

  • bkth: Tale of Chakra Bugs
  • bkth: Angriffe auf Edge durch den JavaScript-Compiler
    • Video
    • Folien

CTF-Challenges

  • Plaid 2017: chakrazy
    • WriteUp
  • N1CTF 2018: Chakra
    • Dateien
  • RealWorldCTF Quals 2019: Appetizer
    • Dateien
  • Trend Micro CTF 2019: ChakraCore 400
    • WriteUp
    • WriteUp
    • Exploit

RealWorld

  • bkth, S0rryMyBad: Nicht-JIT-Bug, JIT-Exploit

Werkzeuge

Bibliotheken:

  • pwnjs (Eine JavaScript-Bibliothek für Browser-Exploitation)

Hilfsprogramme

  • int64.js
  • utils.js

Debugging

  • shadow jemalloc-Heap-Exploitation-Framework (Heap-Allokator, der von Firefox verwendet wird)

JavaScript (ECMAScript) Dokumentation

  • Typen & Werte
  • Objekte
  • Objekt-Eigenschaften
Tool herunterladen