Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
browser-pwn — Uma coleção atualizada de recursos voltados para a exploração de navegadores. | Kitploit
Ferramentas/GitHubGitHub/m1ghtym0/browser-pwn
ExploraçãoFuzzingCTFPapers e PesquisaAprendizado e EducaçãoRecursos CuradosExploração de Binários
GitHubm1ghtym0/browser-pwn

browser-pwn

Uma coleção atualizada de recursos voltados para a exploração de navegadores.

Ver Repositório
832114há 5 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Browser-Pwn

O mundo dos navegadores é dominado por 4 grandes players:

  • Chromium/Chrome (mecanismo Blink)
  • Firefox (mecanismo Gecko)
  • Safari (mecanismo WebKit)
  • Edge (mecanismo Blink (anteriormente mecanismo EdgeHTML)

O conteúdo a seguir é dividido em duas partes:

  • Informações que ajudam a entender sua arquitetura e implementação e como compilá-los a partir das fontes
  • Informações que ajudam a encontrar a funcionalidade de abrir a calculadora

Índice

  1. Mecanismos
    • Visão Geral
    • Chromium
    • Firefox
    • Safari
    • Edge
  2. Exploração
    • Visão Geral
    • Chromium
    • Firefox
    • Safari
    • Edge
  3. Ferramentas
  4. Documentação JavaScript

Mecanismos

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)

Navegue pelas Fontes

É claro que você pode usar sua própria configuração favorita para navegar pelas fontes. No entanto, esses repositórios são relativamente grandes e eu tentei algumas configurações diferentes até encontrar algo que funcionasse para mim. Então, se você ainda não tem uma boa configuração, aqui estão algumas das minhas experiências que podem ajudar você:

  • CTags (+Vim): Funciona bem para seguir referências e chamadas. Se você está acostumado a navegar por grandes árvores de código com essa configuração purista, pode ser uma boa opção para você. A desvantagem, é claro, é a falta dos recursos que a maioria das grandes IDEs oferece hoje em dia.
  • CLion: Eu uso produtos JetBrains para muitas das minhas atividades de programação, mas o CLion não funcionou bem para mim, especialmente para seguir referências. É claro que isso pode ser devido a problemas de configuração.
  • Eclipse: Não uso há algum tempo, mas acabou sendo uma boa opção. Infelizmente, o indexador consome muitos recursos para percorrer o código.
    • Aqui está uma descrição de configuração para o Projeto Chromium, mas funciona de forma semelhante para os outros projetos também.
  • ccls+VSCode Esta é a melhor opção para mim até agora. O ccls é muito rápido para indexar os repositórios e funciona muito bem com o VSCode. Você também pode combiná-lo com outros editores e IDEs, veja https://github.com/MaskRay/ccls/wiki/Editor-Configuration

Chromium (Blink)

Projeto | GitHub

Artigos:

  • What is Chromium? (DE)

O mecanismo JavaScript do Blink é o V8.

V8

Projeto | GitHub | Código-Fonte | Como Compilar

Compilação (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

Flags úteis:

  • --print-opt-code: código gerado pelo compilador otimizador
  • --print-byte-code: bytecode gerado pelo interpretador
  • --trace-ic: diferentes tipos de objeto que um call site encontra
  • --trace-opt e --trace-deopt: quais funções são (des)otimizadas
  • --trace-turbo: traces do TurboFan para a visualização no Turbolizer

Artigos:

  • A tour of V8

Compilador JIT: TurboFan

Documentação | Blog

O V8 fornece uma visualização para o TurboFan chamada Turbolizer

Artigos:

  • Introduction to TurboFan
Uso do Turbolizer:
  1. Execute o v8 com --trace-turbo: d8 --trace-turbo foo.js
  2. Gera arquivos json, ex.: turbo-foo-0.json
  3. Vá para v8/tools/turbolizer e instale com npm conforme descrito no README.md
  4. Sirva o diretório, ex.: python -m SimpleHTTPServer 8000
  5. Acesse localhost:8000 e abra turbo-foo-0.json

Firefox (Gecko)

Projeto | GitHub

O mecanismo JavaScript do Gecko é o Spidermonkey.

Spidermonkey

Projeto | Código-Fonte | Como Compilar

Código-Fonte
  • builtin

Compilação (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

Compilador JIT: IonMonkey

Projeto

O Spidermonkey fornece uma visualização para o IonMonkey chamada IonGraph

Código-Fonte
  • jit

Safari (Webkit)

Projeto | GitHub

O mecanismo JavaScript do WebKit é o JavaScriptCore (JSC).

JavaScriptCore

Projeto | Wiki | Código-Fonte

Artigos:

  • http://www.filpizlo.com/papers.html
Código-Fonte
  • Runtime: Source/JavaScriptCore/runtime

Compilação (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

Compilador JIT: LLInt+ Baseline JIT + DFG JIT + FTL JIT

O WebKit possui um sistema de compilador JIT de 4 camadas, representando o trade-off entre o custo de desempenho da sobrecarga e o benefício de desempenho.

Artigos:

  • Introduction to Webkit's JavaScript JIT Optimizations
  • Introducing the B3 JIT Compiler
Código-Fonte
  • LLInt (Interpretador de Baixo Nível)
  • Baseline JIT
  • DFG JIT (JIT de Grafo de Fluxo de Dados)
  • FTL JIT (compilador Just-In-Time mais rápido que a luz)

Edge (Blink/EdgeHTML)

Projeto | GitHub

Como o Edge migrou para o Blink e o Projeto Chromium como seu mecanismo de renderização, o Edge está usando o v8. Originalmente, o Edge tinha seu próprio mecanismo de renderização chamado EdgeHTML, que usava o mecanismo JavaScript ChakraCore.

ChakraCore

GitHub | Como Compilar

Documentação

  • Architecture Overview

Código-Fonte

  • Runtime: Types
  • Runtime: Language

Compilação (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

Exploração

Exploitation-Overview

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

Chromium Pwn

Artigos

  • Exploiting TurboFan Through Bounds Check Elimination
  • saelo: Exploiting Logic Bugs in JavaScript JIT Engines
    • Artigo da Phrack
    • Slides do 41con 19'

Desafios de CTF

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

Mundo Real

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

Endurecimento e Mitigações

  • Heap-hardening

Firefox Pwn

Artigos

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

Desafios de CTF

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

Mundo Real

  • Introduction to SpiderMonkey
Baixar ferramenta