Вони виявили нову версію атаки контрабанди запитів HTTP

L веб -системи, де інтерфейс приймає з'єднання через 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", але розмір jw.org uk "Довжина вмісту" не відповідає розміру розділеного рядка. У цьому випадку інтерфейс оброблятиме та перенаправлятиме запит відповідно до "Довжини вмісту", а бекенд буде чекати завершення блоку на основі "Перенесення кодування: розділений".

На відміну від текстового протоколу 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. Веб-проксі, балансувачі навантаження, веб-прискорювачі, системи доставки вмісту та інші конфігурації, де запити перенаправляються за допомогою схеми інтерфейсу-сервера, сприйнятливі до проблеми.

Фуенте: https://portswigger.net


Залиште свій коментар

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

*

*

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