---
url: https://docs.ogmabox.com/uk/app/utilities/race-smuggling.md
description: Перевіряйте стани гонитви й поведінку контрабанди HTTP-запитів утилітами Ogma.
---

# Стан гонитви / контрабанда запитів {#race-and-smuggling}

Цей розділ надає два спеціалізовані інструменти для часових атак і атак на рівні протоколу HTTP.

## Стани гонитви {#race-conditions}

Вкладка гонитви одночасно надсилає кілька копій запиту до однієї кінцевої точки й дає змогу порівняти відповіді та час паралельних виконань.

### Коли використовувати {#when-to-use-it}

* **TOCTOU (time-of-check/time-of-use)** — перевіряйте, чи паралельні запити можуть втрутитися між перевіркою й операцією зміни стану.
* **Маніпуляції з обліковим записом** — надсилайте паралельні зміни балансу, погашення купонів або операції з лімітами для перевірки подвійного витрачання чи перевищення кількості погашень.
* **Обхід обмежень голосування або частоти** — перевіряйте атомарність дотримання лімітів для користувача.

### Запуск тесту гонитви {#running-a-race-test}

1. Створіть або надішліть цільовий запит до вкладки гонитви.
2. Задайте **паралельність** — скільки паралельних копій надсилати.
3. Натисніть кнопку надсилання вказаної кількості запитів. Усі копії надсилаються якомога ближче до одночасного виконання.
4. Перевірте таблицю відповідей: код статусу, тіло й тривалість кожної копії.
5. Відмінності відповідей (різні коди статусу, різні тіла, несподіваний успіх копій 2+) вказують на вікно гонитви.

### Гонитва одним пакетом HTTP/2 {#http-2-single-packet-racing}

Якщо ціль підтримує HTTP/2, виберіть **H2 — одним пакетом**. HTTP/2 мультиплексує всі паралельні запити через одне з’єднання, що усуває мережеві коливання затримки й робить одночасне надходження на сервер надійнішим.

## Контрабанда HTTP-запитів {#http-request-smuggling}

Вкладка контрабанди перевіряє, як сервер опрацьовує неоднозначні заголовки `Content-Length` і `Transfer-Encoding`, щоб виявити розсинхронізацію між фронтендом і бекендом.

### Передумови {#background}

Якщо зворотний проксі й сервер бекенда по-різному визначають, де закінчується один запит і починається наступний, прихований префікс запиту A може бути додано перед запитом B. Вплив варіюється від отруєння кешу до обходу автентифікації й ін’єкції довільних запитів.

### Варіанти розсинхронізації {#desync-variants}

| Варіант | Опис |
|---|---|
| CL.TE | Фронтенд використовує Content-Length; бекенд — Transfer-Encoding |
| TE.CL | Фронтенд використовує Transfer-Encoding; бекенд — Content-Length |
| TE.TE | Обидва використовують Transfer-Encoding, але по-різному реагують на обфускований заголовок |

### Запуск проби контрабанди {#running-a-smuggling-probe}

1. Виберіть цільову кінцеву точку на вкладці контрабанди.
2. Виберіть варіант розсинхронізації для перевірки.
3. Натисніть **Запустити перевірку контрабанди запитів**. Інструмент надсилає спеціально сформований запит і вимірює відповідь.
4. Тайм-аут або несподівана відповідь на другий запит послідовності вказує на потенційну розсинхронізацію.
5. Підтвердьте вручну перед створенням знахідки: хибні спрацювання можливі, коли мережеві умови спричиняють тайм-аут, не пов’язаний із пробою.

## Пов’язані сторінки {#related-pages}

* [Повторне надсилання](../replay.md)
* [Перехоплення](../intercept.md)
* [Знахідки](../findings.md)
