Те откриха нова версия на атаката за контрабанда на HTTP заявки

Лос уеб системи, където интерфейсът приема връзки чрез HTTP / 2 и ги предава на бекенда чрез HTTP / 1.1 hса били изложени на нова версия на атаката „Контрабанда на 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 Request Smuggling" атака се основава на факта, че интерфейсите и бекендите интерпретират различно използването на HTTP заглавки "Content-Length" (определя общия размер на данните в заявката) и "Transfer-Encoding: chunked" ( ви позволява да прехвърляте данни на парчета) ...

Например, ако интерфейсът поддържа само "Content-Length", но игнорира "Transfer-Encoding: Fragmented", атакуващият може да изпрати заявка, която съдържа заглавките "Content-Length" и "Transfer-Encoding: Fragmented", но размерът EurLex -XNUMX bg „Дължина на съдържанието“ не съответства на размера на нарязания низ. В този случай интерфейсът ще обработи и пренасочи заявката според "Дължина на съдържанието", а бекендът ще изчака блока да завърши въз основа на "Прехвърляне на кодиране: на парчета".

За разлика от текстовия HTTP / 1.1 протокол, който се анализира на ниво ред, HTTP / 2 е двоичен протокол и манипулира блокове данни с предварително определен размер. Въпреки това, HTTP / 2 използвайте псевдозаглавки които съответстват на нормалните HTTP заглавки. При взаимодействие с бекенда използвайки протокола HTTP / 1.1, интерфейсът превежда тези псевдозаглавки в подобни HTTP / 1.1 HTTP заглавки. Проблемът е, че бекендът взема решения относно анализа на предаването въз основа на HTTP заглавките, зададени от интерфейса, без да знаете параметрите на първоначалната заявка.

Дори под формата на псевдозаглавия, стойностите "Content-length" и "transfer-encoding" те могат да се предават поточно, въпреки че не се използват в HTTP / 2, тъй като размерът на всички данни се определя в отделно поле. Въпреки това, когато преобразувате HTTP / 2 заявка в HTTP / 1.1, тези заглавки преминават и могат да бъдат объркващи за бекенда.

Има две основни опции за атака: H2.TE и H2.CL, при което бекендът е заблуден от неправилно кодиране на трансфер или стойност на дължина на съдържанието, която не съответства на действителния размер на тялото на заявката, получено от интерфейса чрез HTTP / 2 протокола.

Като пример за H2.CL атака, в псевдозаглавката е посочен неправилен размер дължина на съдържанието при подаване на заявка HTTP / 2 към Netflix. Тази заявка води до добавяне на заглавка HTTP съдържание-дължина подобно при достъп до бекенда чрез HTTP / 1.1, но тъй като размерът в Дължина на съдържанието е по -малко от действителното, част от данните в опашката се обработват като началото на следващата заявка.

Инструментите за атака вече са добавени към инструментариума на Burp и са достъпни като разширение Turbo Intruder. Уеб прокси, балансиращи натоварвания, уеб ускорители, системи за доставка на съдържание и други конфигурации, при които заявките се пренасочват по схема на интерфейс-бекенд, са податливи на проблема.

Fuente: https://portswigger.net


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

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