
React2Shell (CVE-2025-55182) Exploit
Ein Python-Skript, das eine interaktive Shell zur Ausnutzung der kritischen RCE-Sicherheitslücke (CVE-2025-55182) in verwundbaren React Server Components- und Next.js-Anwendungen bereitstellt. Dieser Exploit zielt auf den Deserialisierungsfehler, der eine nicht authentifizierte Remote-Codeausführung ermöglicht. Er enthält ein modulares System zum Hinzufügen von WAF-Bypass-Techniken.
[!NOTE] Dieser Exploit ist dafür ausgelegt, mit dem verwundbaren RSC-Protokoll-Endpunkt zu interagieren. Ausführungsergebnisse werden über den Antwortmechanismus des Servers erfasst. Befehle, die keine Ausgabe erzeugen, geben
(empty)zurück.
[!CAUTION] Dieser Code dient ausschließlich Forschungs- und Bildungszwecken. Er soll helfen, die CVE-2025-55182-Sicherheitslücke zu verstehen, zu erkennen und zu beheben. Verwenden Sie ihn nicht gegen Systeme ohne ausdrückliche Genehmigung.
Die Nutzung dieses Skripts erfolgt auf eigene Gefahr des Benutzers. Die Autoren übernehmen keinerlei Verantwortung für Missbrauch oder unbeabsichtigte Folgen.
Durch die Verwendung dieses Codes erkennt der Benutzer Folgendes an und stimmt dem zu:
- Der Benutzer ist allein für alle rechtlichen Konsequenzen verantwortlich, die aus der Nutzung dieses Skripts entstehen.
- Der Benutzer hält die Autoren nicht haftbar für Schäden, Verluste oder rechtliche Schritte, die sich aus der Nutzung dieses Codes ergeben.
- Der Benutzer verpflichtet sich, alle geltenden Gesetze und Vorschriften einzuhalten.
- Der Benutzer erkennt an, dass die Verwendung dieses Skripts gegen Systeme ohne Erlaubnis gegen Gesetze und Nutzungsbedingungen verstoßen kann und möglicherweise zu schwerwiegenden Strafen führt.
- Dem Benutzer wird empfohlen, vor der Verwendung dieses Codes einen eigenen Rechtsbeistand zu konsultieren.
Dieser Exploit verfügt über ein dynamisches WAF-Bypass-Modulsystem. Die Module werden als separate Python-Dateien im Verzeichnis waf_modules gespeichert. Jedes Modul muss eine Funktion modify_request(body, headers) definieren, die den Standardanfragetext und die Standard-Header entgegennimmt, sie für den Bypass nach Bedarf modifiziert und die neuen body, headers zurückgibt.
bypass_custom.py) im Verzeichnis waf_modules, die die Funktion modify_request enthält.--help aus, um die verfügbaren Bypass-Optionen anzuzeigen (z. B. --bypass-custom für bypass_custom.py). Verwenden Sie das entsprechende Flag, um das Modul zu aktivieren.Beispiel: Als Beispiel ist ein Modul bypass_vercel.py enthalten, das Techniken implementiert, die gegen Vercel-Bereitstellungen potenziell wirksam sind.
--modify-request)Das Skript erlaubt die direkte Änderung bestimmter Attribute des requests.Session-Objekts, das für HTTP-Anfragen verwendet wird. Dies ermöglicht feingranulare Kontrolle über Aspekte wie SSL-Verifizierung, Timeouts und potenziell andere Einstellungen auf Sitzungsebene.
--modify-request <KEY> <VALUE>. Der <KEY> entspricht einem Attribut des requests.Session-Objekts (z. B. verify, timeout).<VALUE>: true/false werden zu booleschen Werten, numerische Zeichenfolgen werden zu Ganzzahlen oder Gleitkommazahlen, andernfalls bleibt der Wert eine Zeichenfolge.--modify-request verify True--modify-request verify False (entspricht dem alten --insecure-Flag)python CVE-2025-55182.py --help-modify-request für eine baumartige Darstellung der gängigen Optionen.requirements.txt)python -m venv venv und source venv/bin/activate auf Unix-ähnlichen Systemen oder venv\Scripts\activate auf Windows).
pip install -r requirements.txt
waf_modules:
mkdir waf_modules
bypass_vercel.py) in diesem Verzeichnis ab.Richten Sie eine verwundbare Umgebung ein (nur zum Testen):
docker run --rm -p 127.0.0.1:3000:3000 ghcr.io/l4rm4nd/cve-2025-55182:latest
Weitere Informationen: https://github.com/l4rm4nd/CVE-2025-55182
Führen Sie das Skript aus:
python CVE-2025-55182.py --help # To see all options, including WAF bypasses
# Example with a bypass module:
python CVE-2025-55182.py --host 127.0.0.1 --port 3000 --endpoint / --bypass-vercel
Wenn keine Befehlszeilenargumente verwendet werden, fragt das Skript interaktiv nach Host, Port und Endpunkt.
Interagieren Sie mit der Shell:
exit oder quit ein, um die Shell-Sitzung zu beenden.