Обнаружены 4 новых варианта атаки HTTP Request Smuggling
6 августа 2020 года
Специалист из компании SafeBreach сообщил о четырех новых вариантах атаки HTTP Request Smuggling («контрабандный HTTP-запрос»), которые могут быть использованы против различных коммерческих web-серверов и прокси-серверов HTTP.
Вице-президент по исследованиям безопасности в SafeBreach Амит Кляйн (Amit Klein) представил свои находки на конференции по кибербезопасности Black Hat. По его словам, web-серверы и HTTP-прокси-серверы по-прежнему уязвимы к HTTP Request Smuggling даже спустя 15 лет с момента их обнаружения.
HTTP Request Smuggling основывается на различиях в обработке данных одного или нескольких HTTP-устройств (кэш-сервер, прокси-сервер, межсетевой экран и т.п.) находящихся между пользователем и web-сервером. Техника HTTP Request Smuggling позволяет провести различные виды атак — отравление кэша, похищение сеанса, межсайтовое выполнение сценариев, а также предоставляет возможность обойти защиту межсетевого экрана.
Новые варианты, раскрытые Кляйном, включают использование различных комбинаций прокси-серверов, включая Aprelium Abyss, Microsoft IIS, Apache и Tomcat в режиме web-сервера, а также Nginx, Squid, HAProxy, Caddy и Traefik в режиме HTTP-прокси.
Эксперт представил список всех четырех новых вариантов, включая один старый, который исследователь успешно использовал в своих экспериментах:
"Header SP/CR junk: …";
"Wait for It";
HTTP/1.2 для обхода защиты mod_security-like;
A plain solution;
"CR header".
При обработке HTTP-запросов, содержащих два поля заголовка Content-Length, было обнаружено, что Abyss, например, принимает второй заголовок как действительный, тогда как Squid использует первый заголовок Content-Length, что привело к разной интерпретации запросов и возникновению «контрабандного HTTP-запроса».
В ситуациях, когда Abyss получает HTTP-запрос с телом, длина которого меньше указанного значения Content-Length, он ждет 30 секунд, чтобы выполнить запрос, но не раньше, чем проигнорирует оставшееся тело запроса. Как отметил Кляйн, в данной ситуации также возникает разная интерпретация запросов между Squid и Abyss, поскольку последний интерпретирует части исходящего HTTP-запроса как второй запрос.
В рамках другого варианта атаки используется HTTP/1.2 для обхода защиты WAF, как определено в OWASP ModSecurity Core Rule Set (CRS) для предотвращения HTTP Request Smuggling.
Использования поля заголовка «Content-Type: text / plain» также было достаточно, чтобы обойти проверки уровней Paranoia Level 1 и 2, указанные в CRS, и создать уязвимость, связанную с HTTP Request Smuggling.
Эксперт сообщил о своих находках Aprelium, Squid и OWASP CRS, и проблемы были исправлены в версии Abyss X1 2.14, версиях Squid 4.12 и 5.0.3 и версии CRS 3.3.0.
Источники[править]
Эта статья содержит материалы из статьи «Обнаружены 4 новых варианта атаки HTTP Request Smuggling», опубликованной на сайте SecurityLab.ru и распространяющейся на условиях лицензии Creative Commons Attribution 3.0 Unported (CC-BY 3.0 Unported). |
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.