🔍 HTTP Request Smuggling - скрытый враг в веб-приложениях
Всем привет! Сегодня хочу рассказать об одной из самых коварных уязвимостей в веб-безопасности - HTTP Request Smuggling (HRS). Это не самая популярная тема, но именно из-за своей скрытности и сложности она очень интересна и опасна.
Что это вообще такое?
HTTP Request Smuggling - это техника атаки, при которой злоумышленник «смешивает» (smuggle) несколько HTTP-запросов так, что они интерпретируются по-разному разными компонентами инфраструктуры: например, фронтенд-прокси и бэкенд-сервером. Из-за этого часть запроса может быть скрыта или неправильно обработана.
Почему это страшно?
Обход аутентификации и авторизации.
Если фронтенд-прокси считает, что запрос закончен, а бэкенд видит в потоке еще один скрытый запрос, злоумышленник может получить доступ к ресурсам, к которым не должен.
Кража сессий и управление ими.
Можно «подменить» куки или заголовки для другого пользователя.
Кэш-пойминг (Cache Poisoning).
Злоумышленник может отправить запрос так, чтобы кеш на прокси или CDN сохранил неправильный контент, выдавая его другим пользователям.
Как это работает?
HTTP/1.1 спецификация позволяет использовать два способа определить конец запроса:
Заголовок Content-Length - указывает точный размер тела запроса.
Заголовок Transfer-Encoding: chunked - тело разбито на чанки.
Если прокси и сервер используют разные методы определения конца запроса (например, прокси смотрит на Content-Length, а сервер - на Transfer-Encoding), они могут по-разному интерпретировать границы запросов.
Пример:
Злоумышленник отправляет один длинный запрос, где часть выглядит как второй отдельный запрос, но прокси считает, что запрос закончился раньше, а сервер обрабатывает остаток как новый запрос с другим содержимым.
Где искать уязвимость?
Между фронтенд-прокси (Nginx, Cloudflare, AWS ALB) и бэкендом.
В приложениях, которые принимают запросы через несколько серверов или балансировщиков.
Особенно если используются разные веб-серверы, или старые версии ПО.
Защита
Используйте современные, актуальные версии серверного ПО.
Следите, чтобы фронтенд и бэкенд согласовывали правила обработки заголовков.
Включайте и настраивайте WAF с поддержкой обнаружения HRS.
Анализируйте логи на аномалии в HTTP-запросах.
Проводите регулярные тесты безопасности с учетом HTTP Request Smuggling.
Итог
HTTP Request Smuggling - не самый очевидный, но очень мощный в руках пентестера инструмент. Его сложно обнаружить, но последствия могут быть катастрофическими.
Если вы еще не сталкивались с этой темой, настоятельно рекомендую изучить! Это как маленький, но злобный тролль в веб-инфраструктуре.
Слышали когда-то про HTTP Request Smuggling? 🙂
>>Click here to continue<<