Skip to content
KitploitKITPLOIT
OutilsBlog
Log in
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
browser-pwn — Une collection actualisée de ressources ciblant l'exploitation de navigateurs. | Kitploit
Outils/GitHubGitHub/m1ghtym0/browser-pwn
ExploitationFuzzingCTFArticles et RechercheApprentissage et ÉducationRessources OrganiséesExploitation de Binaires
GitHubm1ghtym0/browser-pwn

browser-pwn

Une collection actualisée de ressources ciblant l'exploitation de navigateurs.

Voir le dépôt
83211414il y a 5 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Browser-Pwn

Le monde des navigateurs est dominé par 4 acteurs majeurs :

  • Chromium/Chrome (moteur Blink)
  • Firefox (moteur Gecko)
  • Safari (moteur WebKit)
  • Edge (moteur Blink (anciennement moteur EdgeHTML)

Ce qui suit est divisé en deux parties :

  • Des informations qui aident à comprendre leur architecture et leur implémentation, et comment les compiler à partir des sources
  • Des informations qui aident à trouver leur fonctionnalité d'ouverture de calculatrice

Table des matières

  1. Moteurs
    • Vue d'ensemble
    • Chromium
    • Firefox
    • Safari
    • Edge
  2. Exploitation
    • Vue d'ensemble
    • Chromium
    • Firefox
    • Safari
    • Edge
  3. Outils
  4. Documentation JavaScript

Moteurs

Vue d'ensemble des moteurs

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

Parcourir les sources

Bien sûr, vous pouvez utiliser votre configuration préférée pour parcourir les sources. Cependant, ces dépôts sont relativement volumineux et j'ai essayé plusieurs configurations différentes avant de trouver celle qui me convenait. Donc, si vous n'avez pas déjà une bonne configuration, voici quelques-unes de mes expériences qui pourraient vous aider :

  • CTags (+Vim) : Fonctionne bien pour suivre les références et les appels. Si vous avez l'habitude de naviguer dans de grands arbres de sources avec cette configuration puriste, cela peut être une bonne option pour vous. L'inconvénient étant bien sûr le manque de fonctionnalités dont la plupart des grands IDE sont équipés de nos jours.
  • CLion : J'utilise les produits JetBrains pour beaucoup de mes activités de codage, mais CLion ne m'a pas bien convenu, en particulier pour suivre les références. Bien sûr, cela peut être dû à des problèmes de configuration.
  • Eclipse : Je ne l'ai pas utilisé depuis un moment, mais cela s'est avéré être une bonne option. Malheureusement, il faut beaucoup de ressources pour que l'indexeur parcoure le code.
    • Voici une description de configuration pour le projet Chromium, mais cela fonctionne de manière similaire pour les autres projets.
  • ccls+VSCode : C'est la meilleure option pour moi jusqu'à présent. ccls est très rapide pour indexer les dépôts et fonctionne très bien avec VSCode. Vous pouvez aussi le combiner avec d'autres éditeurs et IDE, voir https://github.com/MaskRay/ccls/wiki/Editor-Configuration

Chromium (Blink)

Projet | GitHub

Articles :

  • What is Chromium? (DE)

Le moteur JavaScript de Blink est V8.

V8

Projet | GitHub | Sources | Comment compiler

Compilation (Ubuntu 18.04) :

$ 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

Options utiles :

  • --print-opt-code : code généré par le compilateur optimisant
  • --print-byte-code : bytecode généré par l'interpréteur
  • --trace-ic : les différents types d'objets rencontrés par un site d'appel
  • --trace-opt et --trace-deopt : quelles fonctions sont (dé)optimisées
  • --trace-turbo : traces TurboFan pour la visualisation Turbolizer

Articles :

  • A tour of V8

Compilateur JIT : TurboFan

Documentation | Blog

V8 fournit une visualisation pour TurboFan appelée Turbolizer

Articles :

  • Introduction to TurboFan
Utilisation de Turbolizer :
  1. Exécutez v8 avec --trace-turbo : d8 --trace-turbo foo.js
  2. Génère des fichiers json, p. ex. turbo-foo-0.json
  3. Allez dans v8/tools/turbolizer et installez avec npm comme décrit dans README.md
  4. Servez le répertoire, p. ex. python -m SimpleHTTPServer 8000
  5. Naviguez vers localhost:8000 et ouvrez turbo-foo-0.json

Firefox (Gecko)

Projet | GitHub

Le moteur JavaScript de Gecko est Spidermonkey.

Spidermonkey

Projet | Sources | Comment compiler

Sources
  • builtin

Compilation (Ubuntu 18.04) :

$ 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

Compilateur JIT : IonMonkey

Projet

Spidermonkey fournit une visualisation pour IonMonkey appelée IonGraph

Sources
  • jit

Safari (Webkit)

Projet | GitHub

Le moteur JavaScript de Webkit est JavaScriptCore (JSC).

JavaScriptCore

Projet | Wiki | Sources

Articles :

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

Compilation (Ubuntu 18.04) :

# 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

Compilateur JIT : LLInt+ Baseline JIT + DFG JIT + FTL JIT

WebKit dispose d'un système de compilateur JIT à 4 couches, représentant le compromis entre le coût en performance de la surcharge et le bénéfice en performance.

Télécharger l’outil