Absichtlich anfällige Next.js-App für CVE-2025-55182 Sicherheitsforschung und CTF-Herausforderungen
⚠️ NUR ZU BILDUNGSZWECKEN: Dies ist eine absichtlich verwundbare Anwendung, die für autorisierte Sicherheitsforschung und CTF-Herausforderungen konzipiert wurde. Verwende diese Techniken NICHT auf nicht autorisierten Systemen.
Eine absichtlich verwundbare Next.js 15.1.6-Anwendung, die CVE-2025-55182 (React2Shell) demonstriert – eine kritische Remote Code Execution-Schwachstelle in React Server Components. Entwickelt für Sicherheitsforscher, Penetrationstester und Studenten, um Exploitation-Techniken in einer sicheren, isolierten Umgebung zu üben.
CVE-2025-55182, auch bekannt als React2Shell, ist eine kritische Remote Code Execution (RCE)-Schwachstelle, die React Server Components in Next.js betrifft.
Die Schwachstelle beruht auf unsachgemäßer Handhabung serialisierter Daten in React Server Actions. Angreifer können bösartige Payloads erstellen, die die Validierung umgehen und beliebigen Code auf dem Server ausführen durch:
Bevor du beginnst, stelle sicher, dass Folgendes installiert ist:
docker --version
docker-compose --version
git --version
# 1. Repository klonen
git clone https://github.com/Machine-farmer/PunchingBag-for-React2Shell.git
cd PunchingBag-for-React2Shell
# 2. Mit Docker bauen und ausführen
docker-compose up --build
# 3. Auf die Anwendung zugreifen
# Öffne deinen Browser unter: http://localhost:3000
# 1. Repository klonen
git clone https://github.com/Machine-farmer/punchingbag-cve-2025-55182.git
cd punchingbag-cve-2025-55182
# 2. Abhängigkeiten installieren
npm install
# 3. Entwicklungsserver starten
npm run dev
# 4. Zugriff unter http://localhost:3000
⚠️ Warnung: Manuelle Einrichtung ohne Docker wird für Sicherheitsforschung NICHT empfohlen. Verwende immer Docker zur Isolierung.
# Die verwundbare Anwendung starten
docker-compose up
# Im Hintergrund starten (detached)
docker-compose up -d
# Logs anzeigen
docker-compose logs -f
# Container stoppen
docker-compose down
# Stoppen und Volumes entfernen
docker-compose down -v
# Vollständige Bereinigung (entfernt Images)
docker-compose down -v --rmi all
Sobald sie läuft, navigiere zu:
PunchingBag enthält 5 versteckte Flags, die verschiedene Exploitation-Techniken testen:
| Flag | Herausforderung | Schwierigkeit | Punkte |
|---|---|---|---|
| 🚩 Flag 1 | Grundlegende Aufklärung | Einfach | 100 |
| 🚩 Flag 2 | Server Action Exploit | Mittel | 200 |
| 🚩 Flag 3 | Admin-Zugriff umgehen | Mittel | 300 |
| 🚩 Flag 4 | Remote Code Execution | Schwer | 400 |
| 🚩 Flag 5 | Umgebungsgeheimnisse | Mittel | 250 |
Alle Flags folgen dem Format: CTF{beschreibung_hier}
# Die Anwendung erkunden
curl http://localhost:3000
# Verfügbare Endpunkte prüfen
curl http://localhost:3000/dashboard
curl http://localhost:3000/admin
Formularübermittlungen abfangen und den Payload modifizieren:
// Beispiel für einen bösartigen Payload
{
"name": "angreifer",
"email": "[email protected]",
"message": "__proto__: { isAdmin: true }"
}
# Bösartige Header injizieren
curl -X POST http://localhost:3000/api/data \
-H "Content-Type: application/json" \
-H "x-user-data: {\"role\":\"admin\"}" \
-d '{"exploit": true}'
Überprüfe .env.local auf Anmeldeinformationen oder nutze die Authentifizierung aus:
# Standard-Admin-Token (absichtlich schwach)
Benutzername: admin
Token: super_secret_admin_key_12345
Verwende auf der verwundbaren Komponente die Befehlsausführungsfunktion:
# RCE simulieren
Befehl: cat /flag.txt
__proto__-Eigenschaften injizieren