- Регистрация
- 13 Июн 2025
- Сообщения
- 14
- Реакции
- 1
- Баллы
- 3
Сегодня разберём продвинутую уязвимость — HTTP/2 Request Smuggling, позволяющую обходить файерволы и получать доступ к закрытым данным.Всем привет!
Что такое HTTP/2 Request Smuggling?
Это техника, когда злоумышленник отправляет специально сформированные HTTP/2-запросы, которые по-разному интерпретируются фронтендом (например, Nginx) и бэкендом (Apache). Это приводит к:
- Доступу к закрытым API
- Краже пользовательских сессий
- Обходу WAF и других защит
Как работает атака?
1. Разница в обработке HTTP/2 и HTTP/1.1
Фронтенд-сервер (Nginx) может понимать запрос по HTTP/2, а бэкенд (Apache) — только HTTP/1.1. Если отправить некорректный запрос, серверы обработают его по-разному.
2. Пример эксплойта
Отправляем запрос с:
- Двумя
Код:
Content-Length
- Специальными пробельными символами
- Невалидными заголовками
- Двумя
Код:
http
:method: POST
:path: /admin
content-length: 13
content-length: 5
12345GET /private HTTP/1.1
Host: vulnerable.com
Фронтенд увидит один запрос, а бэкенд — два разных!
Реальные последствия
1. Обход аутентификации — доступ кКод:/admin
2. Кража кук — перехват сессий через подмену запросов
3. XSS через кеш — если используется кеширующий прокси
Как защититься?
1. Обновляйте сервера (Nginx 1.19+, Apache 2.4.47+)
2. Отключайте HTTP/2 на критичных сервисах
3. Настройте единый HTTP-парсер для фронтенда и бэкенда
4. Используйте WAF с правилами для HTTP/2
Код:
nginx
http2_max_field_size 4k;
http2_max_header_size 16k;
Вывод
HTTP/2 Request Smuggling — опасная уязвимость, требующая глубокого понимания протоколов. Она позволяет обходить многие традиционные защиты.