
Questa repository contiene un Proof-of-Concept (PoC) per CVE-2022-24434, una vulnerabilità che colpisce il pacchetto npm Dicer.
Versione target del PoC: 0.3.1 (assicurarsi che il codice dicer utilizzato sia esattamente v0.3.1)
Assicurati che la directory sia strutturata in questo modo:
. ├── dicer/ # Cloned Dicer repo (must be v0.3.1) ├── server.js # Vulnerable server script └── dicer_poc.js # Exploit PoC script
yaml Copia codice
git clone https://github.com/mscdex/dicer.git
cd dicer
# fetch tags and switch to v0.3.1 (tag name may be "v0.3.1" or "0.3.1")
git fetch --all --tags
# try the tag checkout (if tag is 'v0.3.1')
git checkout tags/v0.3.1 -b poc-0.3.1 || git checkout tags/0.3.1 -b poc-0.3.1
npm install # install dicer repo dependencies if needed
cd ..
Opzione B — installa il pacchetto alla versione 0.3.1 (se preferisci usare npm invece di clonare la repo) Se preferisci non clonare l'intera repository, puoi creare una node_modules locale con la versione specifica:
bash Copia codice mkdir tmp_project && cd tmp_project npm init -y npm install [email protected]
cp -R node_modules/dicer ../dicer cd .. rm -rf tmp_project Importante: il PoC è scritto per essere eseguito sulla cartella dei sorgenti di dicer all'interno della root di questo progetto. Assicurati che la cartella denominata dicer nella root corrisponda alla versione 0.3.1.
└── poc/ ├── dicer/ # Cloned Dicer repo (must be v0.3.1) ├── server.js # Vulnerable server script (place here) └── dicer_poc.js # Exploit PoC script (place here)
Avvia il server vulnerabile:
bash Copia codice node server.js
In un terminale separato, esegui il PoC dell'exploit:
bash Copia codice node dicer_poc.js
Il PoC dipende da un comportamento presente in dicer v0.3.1. L'uso di versioni più recenti o patchate potrebbe non riprodurre il problema.
Se hai clonato la repo e non riesci a trovare il tag, controlla git tag per elencare i tag disponibili. Se non è presente un tag 0.3.1, utilizza il metodo npm-install descritto sopra e verifica che il package.json all'interno di dicer/ mostri la versione 0.3.1.
Questa repository è stata creata esclusivamente a scopo didattico e di ricerca. Non utilizzare questo PoC contro sistemi senza esplicita autorizzazione. L'autore non è responsabile di eventuali usi impropri o danni causati.