Обнаружена новая версия атаки HTTP Request Smuggling.

веб-системы, в которых интерфейс принимает соединения через HTTP / 2 и передает их на бэкэнд через HTTP / 1.1 ч.подверглись новой версии атаки «Контрабанда HTTP-запросов», Это позволяет, отправляя специально разработанные клиентские запросы, разделять содержимое запросов других пользователей, обрабатываемых в одном потоке, между интерфейсом и сервером.

Атака может использоваться для внедрения вредоносного кода JavaScript в сеансе с легитимным сайтом обходить системы ограничения доступа и перехватывать параметры аутентификации.

Автор исследования продемонстрировали возможность атаки на системы Netflix, Verizon, Bitbucket, Netlify CDN и Atlassianи получил 56.000 5 долларов в виде программ вознаграждения за выявление уязвимостей. Проблема также была подтверждена в продуктах FXNUMX Networks.

Проблема частично влияет на mod_proxy на http-сервере Apache (CVE-2021-33193), исправления ожидаются в версии 2.4.49 (разработчики были уведомлены о проблеме в начале мая и дали 3 месяца на ее исправление). В nginx возможность одновременного указания заголовков Content-Length и Transfer-Encoding была заблокирована в предыдущей версии (1.21.1).

Принцип работы нового метода соответствия запросов в трафике похожа на уязвимость, обнаруженную тем же исследователем два года назад, но он ограничен интерфейсами, которые принимают запросы через HTTP / 1.1.

Классическая атака «Контрабанда HTTP-запросов» была основана на том факте, что внешние и внутренние интерфейсы по-разному интерпретируют использование заголовков HTTP Content-Length (определяет общий размер данных в запросе) и «Transfer-Encoding: chunked» (позволяет вы передавать данные кусками) ...

Например, если интерфейс поддерживает только «Content-Length», но игнорирует «Transfer-Encoding: Fragmented», злоумышленник может отправить запрос, содержащий заголовки «Content-Length» и «Transfer-Encoding: Fragmented», но размер Common crawl ru «Длина содержимого» не соответствует размеру разбитой на блоки строки. В этом случае интерфейс будет обрабатывать и перенаправлять запрос в соответствии с «длиной содержимого», а бэкэнд будет ждать завершения блока на основе «кодировки передачи: фрагментировано».

В отличие от текстового протокола HTTP / 1.1, который анализируется на уровне строки, HTTP / 2 - это бинарный протокол, который управляет блоками. данные заранее определенного размера. Однако HTTP / 2 использовать псевдозаголовки которые соответствуют обычным заголовкам HTTP. При взаимодействии с серверной частью используя протокол HTTP / 1.1, интерфейс переводит эти псевдозаголовки в аналогичных заголовках HTTP / 1.1 HTTP. Проблема в том, что серверная часть принимает решения об анализе передачи. на основе заголовков HTTP, установленных интерфейсом, не зная параметров исходного запроса.

Даже в виде псевдозаголовков значения «Длина содержимого» и «кодирование передачи» их можно передавать в потоковом режиме, хотя они не используются в HTTP / 2, поскольку размер всех данных определяется в отдельном поле. Однако при преобразовании запроса HTTP / 2 в HTTP / 1.1 эти заголовки проходят и могут сбивать с толку серверную часть.

Есть два основных варианта атаки: H2.TE и H2.CL., в котором серверная часть обманута неправильной кодировкой передачи или значением длины содержимого, которое не соответствует фактическому размеру тела запроса, полученного внешним интерфейсом по протоколу HTTP / 2.

В качестве примера атаки H2.CL указан неверный размер в псевдозаголовке. длина содержимого при отправке запроса HTTP / 2 в Netflix. Этот запрос приводит к добавлению заголовка Длина содержимого HTTP аналогично при доступе к бэкэнду через HTTP / 1.1, но поскольку размер в Content-Length меньше фактического, часть данных в очереди обрабатывается как начало следующего запроса.

Инструменты атаки уже добавлены в Burp's Toolkit и доступны как расширение Turbo Intruder. Веб-прокси, балансировщики нагрузки, веб-ускорители, системы доставки контента и другие конфигурации, в которых запросы перенаправляются по схеме внешнего интерфейса и внутреннего интерфейса, подвержены этой проблеме.

источник: https://portswigger.net


Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.