Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
browser-pwn — Una raccolta aggiornata di risorse incentrate sullo sfruttamento dei browser. | Kitploit
Strumenti/GitHubGitHub/m1ghtym0/browser-pwn
ExploitFuzzingCTFPaper e RicercaApprendimento e FormazioneRisorse CurateBinary Exploitation
GitHubm1ghtym0/browser-pwn

browser-pwn

Una raccolta aggiornata di risorse incentrate sullo sfruttamento dei browser.

Vedi Repository
83211445 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Browser-Pwn

Il mondo dei browser è dominato da 4 attori principali:

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

Quanto segue è suddiviso in due parti:

  • Informazioni che aiutano a comprendere la loro architettura e implementazione e come compilarli dai sorgenti
  • Informazioni che aiutano a trovare la loro funzionalità che fa apparire la calcolatrice

Indice

  1. Motori
    • Overview
    • Chromium
    • Firefox
    • Safari
    • Edge
  2. Exploitation
    • Overview
    • Chromium
    • Firefox
    • Safari
    • Edge
  3. Tools
  4. JavaScript Docs

Motori

Engine-Overview

  • Javascript Engine Fundamentals: the good, the bad, and the ugly
  • Javascript Engine Fundamentals: Shapes and Inline Caches
  • JavaScript Engines - how do they even (Video)
  • Navigare tra i Sorgenti

    Naturalmente puoi usare la tua configurazione preferita per navigare tra i sorgenti. Tuttavia, questi repository sono relativamente grandi e ho provato un paio di configurazioni diverse finché non ho trovato qualcosa che funzionasse per me. Quindi, se non hai già una buona configurazione, ecco un paio di esperienze che potrebbero aiutarti:

    • CTags (+Vim): Funziona bene per seguire riferimenti e chiamate. Se sei abituato a navigare in grandi alberi dei sorgenti con questa configurazione purista, può essere una buona opzione per te. Lo svantaggio è, ovviamente, la mancanza delle funzionalità che la maggior parte dei grandi IDE offre oggigiorno.
    • CLion: Uso i prodotti JetBrains per molte delle mie attività di programmazione, ma CLion non ha funzionato bene per me, soprattutto per seguire i riferimenti. Naturalmente potrebbe essere dovuto a problemi di configurazione.
    • Eclipse: Non lo uso da un po', ma si è rivelato una buona opzione. Sfortunatamente, richiede molte risorse perché l'indicizzatore possa scorrere il codice.
      • Qui c'è una descrizione della configurazione per il progetto Chromium, ma funziona in modo simile anche per gli altri progetti.
    • ccls+VSCode Questa è la migliore opzione per me finora. ccls è molto veloce nell'indicizzare i repository e funziona benissimo con VSCode. Puoi anche combinarlo con altri editor e IDE; vedi https://github.com/MaskRay/ccls/wiki/Editor-Configuration

    Chromium (Blink)

    Progetto | GitHub

    Articoli:

    • What is Chromium? (DE)

    Il motore JavaScript di Blink è V8.

    V8

    Progetto | GitHub | Sorgenti | How2Build

    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
    

    Flag utili:

    • --print-opt-code: codice generato dal compilatore ottimizzante
    • --print-byte-code: bytecode generato dall'interprete
    • --trace-ic: i diversi tipi di oggetto che un call site incontra
    • --trace-opt e --trace-deopt: quali funzioni vengono (de)ottimizzate
    • --trace-turbo: tracciati TurboFan per la visualizzazione con Turbolizer

    Articoli:

    • A tour of V8

    Compilatore JIT: TurboFan

    Documentazione | Blog

    V8 fornisce una visualizzazione per TurboFan chiamata Turbolizer

    Articoli:

    • Introduction to TurboFan
    Utilizzo di Turbolizer:
    1. Esegui v8 con --trace-turbo: d8 --trace-turbo foo.js
    2. Genera i file json, es. turbo-foo-0.json
    3. Vai in v8/tools/turbolizer e installa con npm come descritto in README.md
    4. Servi la directory, es. python -m SimpleHTTPServer 8000
    5. Naviga su localhost:8000 e apri turbo-foo-0.json

    Firefox (Gecko)

    Progetto | GitHub

    Il motore JavaScript di Gecko è Spidermonkey.

    Spidermonkey

    Progetto | Sorgenti | How2Build

    Sorgenti
    • 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
    

    Compilatore JIT: IonMonkey

    Progetto

    Spidermonkey fornisce una visualizzazione per IonMonkey chiamata IonGraph

    Sorgenti
    • jit

    Safari (Webkit)

    Progetto | GitHub

    Il motore JavaScript di Webkit è JavaScriptCore (JSC).

    JavaScriptCore

    Progetto | Wiki | Sorgenti

    Articoli:

    • http://www.filpizlo.com/papers.html
    Sorgenti
    • 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
    

    Compilatori JIT: LLInt+ Baseline JIT + DFG JIT + FTL JIT

    WebKit ha un sistema di compilatori JIT a 4 livelli, che rappresenta il compromesso tra il costo prestazionale dell'overhead e il beneficio prestazionale.

    Articoli:

    • Introduction to Webkit's JavaScript JIT Optimizations
    • Introducing the B3 JIT Compiler
    Sorgenti
    • LLInt (Low Level Interpreter)
    • Baseline JIT
    • DFG JIT (Data Flow Graph JIT)
    • FTL JIT (Faster Than Light Just In Time compiler)

    Edge (Blink/EdgeHTML)

    Progetto | GitHub

    Da quando Edge è passato a Blink e al progetto Chromium come motore di rendering, Edge usa v8. Originariamente, Edge aveva un proprio motore di rendering chiamato EdgeHTML, che utilizzava il motore JavaScript ChakraCore.

    ChakraCore

    GitHub | How2Build

    Documentazione

    • Architecture Overview

    Sorgenti

    • 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-Overview

    • Saelo: Attacking JavaScript-Engines
    • Awesome-Browser-Exploitation
    • Attacking WebKit applications (Slides)
    • Saelo: Attacking Client-Side JIT Compilers - BlackHat 2018
      • Video
      • Slides
    • j0nathanj: From Zero to ZeroDay (Finding a Chakra Zero Day)
      • Video Slides
    • Saelo: Fuzzili - (Guided-)fuzzing for JavaScript engines
      • Video
      • Slides

    Chromium Pwn

    Articoli

    • Exploiting TurboFan Through Bounds Check Elimination
    • saelo: Exploiting Logic Bugs in JavaScript JIT Engines
      • Articolo Phrack
      • 41con 19' slides

    Sfide CTF

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

    Mondo reale

    • MobilePwn2Own 2013 - Chrome on Android
    • https://halbecaf.com/2017/05/24/exploiting-a-v8-oob-write/
    • niklasb: Chrome IPC Exploitation
      • Video
      • Slides
    • CVE-2019-5782 Write-Up
    • CVE-2019-5790
    • CVE-2019-5786 Chrome Remote Code Execution Vulnerability Analysis

    Hardening e Mitigazioni

    • Heap-hardening

    Firefox Pwn

    Articoli

    • Playing around with SpiderMonkey
    • OR'LYEH? The Shadow over Firefox
    • A journey into IonMonkey: root-causing CVE-2019-9810

    Sfide CTF

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

    Mondo reale

    • Introduction to SpiderMonkey exploitation
      • Articolo
    • Use-after-free in Spidermonkey (Beta 53)
      • Articolo
      • Talk
      • Slides
    • https://saelo.github.io/posts/firefox-script-loader-overflow.html
    • Use-after-free in SpiderMonkey (64.0a1)
      • Articolo
    • CVE-2019-11707 Type Confusion
      • WriteUp
      • Report
    • CVE-2019-11708 e CVE-2019-9810
      • WriteUp

    Safari Pwn

    Sfide CTF

    • RealWorldCTF 2018: Engine for Neophytes
      • File
    • 35c3: WebKid
      • Sorgenti
      • WriteUp

    Mondo reale

    • http://www.phrack.org/papers/attacking_javascript_engines.html
      • Sorgenti
      • WriteUp+Build
    • Fuzzing Webkit and analysis of 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

    Hardening e Mitigazioni

    • Heap-hardening
    • CagedPtr Sorgenti e Esempio ArrayBuffer

    Edge

    Articoli

    • bkth: Tale of Chakra Bugs
    • bkth: Attacking Edge Through the JavaScript-Compiler
      • Video
      • Slides

    Sfide CTF

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

    Mondo reale

    • bkth, S0rryMyBad: Non JIT Bug, JIT Exploit

    Tools

    Librerie:

    • pwnjs (Una libreria JavaScript per lo sfruttamento dei browser)

    Utility

    • int64.js
    • utils.js

    Debugging

    • shadow framework per lo sfruttamento dell'heap jemalloc (allocatore di heap usato da Firefox)

    JavaScript (ECMAScript) Docs

    • Types&Values
    • Objects
    • Object-Properties
    Scarica lo strumento