
Nmap-NSE-Skript zum Scannen von React2Shell (CVE-2025-55182)
Nmap-NSE-Skript zum Scannen von React2Shell (CVE-2025-55182)
Haftungsausschluss Der folgende Code dient ausschließlich zu Bildungs- und Forschungszwecken. Die Verwendung dieses Skripts erfolgt vollständig im eigenen Ermessen und auf eigene Verantwortung des Nutzers.
Dieser Scanner kann Fehlalarme oder eindeutige Ergebnisse liefern. Daher liegt es in der Verantwortung des Nutzers, gemeldete Befunde zu validieren und zu bestätigen. Der Autor übernimmt keine Haftung für Missbrauch, Schäden oder unbeabsichtigte Folgen, die durch die Ausführung dieses Codes entstehen.
Verwenden Sie dieses Werkzeug nur in Umgebungen, in denen Sie ausdrücklich autorisiert sind. Unbefugtes Testen von Systemen ist strengstens untersagt und kann illegal sein.
Autor: Kevin Leon
Kategorien: discovery, vuln, intrusive
Skripttyp: Nmap NSE
nmap --script http-vuln-cve2025-55182.nse -p- <Ziel>
nmap --script http-vuln-cve2025-55182.nse -p3000,3001,3002 <Ziel>
nmap --script http-vuln-cve2025-55182.nse \
--script-args=http-vuln-cve2025-55182.waf_bypass=true <Ziel>
PORT STATE SERVICE
3000/tcp open ppp
| http-vuln-cve2025-55182:
| VULNERABLE:
| React2Shell Remote Code Execution (RCE)
| State: VULNERABLE
| IDs: CVE:2025-55182
| Risk factor: High CVSS: 10.0
| Disclosure date: 2025-12-03
| References:
| https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
| https://nvd.nist.gov/vuln/detail/CVE-2025-55182
| https://github.com/assetnote/react2shell-scanner
|_ https://github.com/msanft/CVE-2025-55182
Vor dem Ausnutzungsversuch prüft das Skript, ob das Ziel wahrscheinlich Folgendes ausführt:
Erkennungsmethoden
Das Skript führt zunächst Folgendes aus:
http.get(host, port, "/")
und untersucht:
X-Powered-By: next.jsX-Powered-By: react_next
(Hinweis auf Next.js-Statik-Assets)Dann gilt das Ziel als potenziell verwundbar.
Multipart-Grenzwerterzeugung
Das Skript erzeugt eine zufällige WebKit-formatierte Grenze:
----WebKitFormBoundary<zufällige 16 Zeichen>
Diese wird für den multipart/form-data-Exploit verwendet.
Abhängig von den Benutzerargumenten:
Einfacher Exploit-Payload
WAF-Bypass-Payload
--script-args=http-vuln-cve2025-55182.waf_bypass=true
Enthält mehr Felder und Verschleierung, um Middleware zu umgehen.
Innerhalb des Payloads injiziert das Skript Folgendes:
process.mainModule.require('child_process')
.execSync('echo $((41*271))')
Dieser Befehl ergibt 11111 und wird später zur Verifizierung des Exploits durch die Erkennung des Redirect-Digests verwendet.
Das Skript versucht, die Schwachstelle auszunutzen, indem es den präparierten Payload per POST an mehrere bekannte RSC-Endpunkte sendet:
/
/_action
/api/action
/api
/_next/data
/__rsc
/action
/server
/server/action
Jede Anfrage wird gesendet als:
http.post(host, port, path, header, payload)
Fall A — HTTP 500 Serverfehler
Ein erfolgreicher Deserialisierungsfehler weist auf eine mögliche Verwundbarkeit hin:
Fall B — Vorhandensein des NEXT_REDIRECT-Digests
Der Payload erzwingt eine serverseitige Weiterleitung:
NEXT_REDIRECT;push;/login?a=11111;307;
Das Skript prüft die Antwort-Header auf:
11111 enthältWenn gefunden → Höchstwahrscheinlich verwundbar
Basierend auf dem Erkennungsergebnis erstellt das Skript einen standardmäßigen NSE-Schwachstellenbericht:
VULNERABLE_VERWUNDBAR ┌──────────────────────┐
│ Start NSE Script │
└─────────────┬────────┘
│
▼
┌────────────────────┐
│ Request "/" │
│ Check headers/body │
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ React/Next.js Detected? ── No ─▶ Exit (Not Vulnerable)
└──────────┬─────────┘
│Yes
▼
┌────────────────────┐
│ Build multipart │
│ exploit payload │
└──────────┬─────────┘
▼
┌─────────────────────────────────┐
│ Loop through RSC endpoints │
│ Send POST exploit payload │
└──────────┬──────────────────────┘
│
┌─────────┴──────────────────────────────┐
▼ ▼
┌───────────────┐ ┌───────────────────┐
│ HTTP 500? │ YES │ Redirect digest? │ YES
└───────┬────────┘ └────────┬──────────┘
│NO │NO
▼ ▼
Continue testing Continue testing
│ │
└──────────────────────────────┬─────────┘
▼
┌────────────────────┐
│ Vulnerable? │
└──────────┬─────────┘
▼
Generate Report
Dieses Skript bietet einen gründlichen, automatisierten und sicheren Erkennungsmechanismus für die hochriskante React2Shell-Schwachstelle. Sein mehrschichtiger Validierungsansatz gewährleistet zuverlässige Erkennung und minimiert gleichzeitig Fehlalarme.