Translated ['src/pentesting-web/rate-limit-bypass.md'] to uk

This commit is contained in:
Translator 2025-07-12 14:08:35 +00:00
parent b41fe8ca25
commit 8ae1399424

View File

@ -14,7 +14,7 @@
### Маніпулювання IP-джерелом через заголовки
Модифікація заголовків для зміни сприйнятого IP-джерела може допомогти уникнути обмеження швидкості на основі IP. Заголовки, такі як `X-Originating-IP`, `X-Forwarded-For`, `X-Remote-IP`, `X-Remote-Addr`, `X-Client-IP`, `X-Host`, `X-Forwared-Host`, включаючи використання кількох екземплярів `X-Forwarded-For`, можуть бути відкориговані для симуляції запитів з різних IP.
Модифікація заголовків для зміни сприйнятого IP-джерела може допомогти уникнути обмеження швидкості на основі IP. Заголовки, такі як `X-Originating-IP`, `X-Forwarded-For`, `X-Remote-IP`, `X-Remote-Addr`, `X-Client-IP`, `X-Host`, `X-Forwared-Host`, включаючи використання кількох екземплярів `X-Forwarded-For`, можуть бути відкориговані для імітації запитів з різних IP.
```bash
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
@ -30,7 +30,7 @@ X-Forwarded-For: 127.0.0.1
```
### Зміна інших заголовків
Рекомендується змінювати інші заголовки запитів, такі як user-agent та cookies, оскільки їх також можна використовувати для ідентифікації та відстеження шаблонів запитів. Зміна цих заголовків може запобігти визнанню та відстеженню дій запитувача.
Рекомендується змінювати інші заголовки запиту, такі як user-agent та cookies, оскільки їх також можна використовувати для ідентифікації та відстеження шаблонів запитів. Зміна цих заголовків може запобігти визнанню та відстеженню дій запитувача.
### Використання поведінки API Gateway
@ -38,11 +38,11 @@ X-Forwarded-For: 127.0.0.1
### Увійдіть у свій обліковий запис перед кожною спробою
Увійти в обліковий запис перед кожною спробою або кожним набором спроб може скинути лічильник обмеження швидкості. Це особливо корисно при тестуванні функцій входу. Використання атаки Pitchfork у таких інструментах, як Burp Suite, для ротації облікових даних кожні кілька спроб і забезпечення того, щоб перенаправлення були позначені, може ефективно перезапустити лічильники обмеження швидкості.
Увійти в обліковий запис перед кожною спробою або кожним набором спроб може скинути лічильник обмеження швидкості. Це особливо корисно при тестуванні функціональності входу. Використання атаки Pitchfork у таких інструментах, як Burp Suite, для ротації облікових даних кожні кілька спроб і забезпечення того, щоб перенаправлення були позначені, може ефективно перезапустити лічильники обмеження швидкості.
### Використання мереж проксі
### Використання проксі-мереж
Розгортання мережі проксі для розподілу запитів через кілька IP-адрес може ефективно обійти обмеження швидкості на основі IP. Направляючи трафік через різні проксі, кожен запит виглядає так, ніби він походить з іншого джерела, розмиваючи ефективність обмеження швидкості.
Розгортання мережі проксі для розподілу запитів через кілька IP-адрес може ефективно обійти обмеження швидкості на основі IP. Маршрутизуючи трафік через різні проксі, кожен запит виглядає так, ніби він походить з іншого джерела, розмиваючи ефективність обмеження швидкості.
### Розподіл атаки між різними обліковими записами або сесіями
@ -50,10 +50,68 @@ X-Forwarded-For: 127.0.0.1
### Продовжуйте намагатися
Зверніть увагу, що навіть якщо обмеження швидкості встановлено, ви повинні спробувати перевірити, чи є відповідь іншою, коли надсилається дійсний OTP. У [**цьому пості**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732) дослідник вразливостей виявив, що навіть якщо обмеження швидкості спрацьовує після 20 невдалих спроб, відповідаючи 401, якщо дійсний OTP був надісланий, було отримано відповідь 200.
Зверніть увагу, що навіть якщо обмеження швидкості встановлено, ви повинні спробувати перевірити, чи є відповідь іншою, коли надсилається дійсний OTP. У [**цьому пості**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732) дослідник вразливостей виявив, що навіть якщо обмеження швидкості спрацьовує після 20 невдалих спроб, відповідаючи 401, якщо дійсний OTP був надісланий, була отримана відповідь 200.
### Інструменти
---
- [**https://github.com/Hashtag-AMIN/hashtag-fuzz**](https://github.com/Hashtag-AMIN/hashtag-fuzz): hashtag-fuzz - це інструмент для фуззингу, призначений для тестування та обходу WAF та CDN. Використовуючи розширені функції, такі як випадковий User-Agent та значення заголовка, випадкові затримки, обробка багатопоточності, вибіркове розбиття списків слів та ротація проксі Round Robin для кожного розбитого запиту, він пропонує надійне рішення для фахівців з безпеки, які прагнуть виявити вразливості в веб-додатках.
### Зловживання мультиплексуванням HTTP/2 та конвеєризацією запитів (2023-2025)
Сучасні реалізації обмежувачів швидкості часто рахують **TCP з'єднання** (або навіть окремі запити HTTP/1.1) замість *кількості потоків HTTP/2*, які містить з'єднання. Коли те саме TLS з'єднання повторно використовується, зловмисник може відкрити сотні паралельних потоків, кожен з яких несе окремий запит, тоді як шлюз відраховує лише *один* запит з квоти.
```bash
# Send 100 POST requests in a single HTTP/2 connection with curl
seq 1 100 | xargs -I@ -P0 curl -k --http2-prior-knowledge -X POST \
-H "Content-Type: application/json" \
-d '{"code":"@"}' https://target/api/v2/verify &>/dev/null
```
Якщо обмежувач захищає лише `/verify`, але не `/api/v2/verify`, ви також можете поєднати **плутанину шляхів** з мультиплексуванням HTTP/2 для *надзвичайно* швидкого брутфорсу OTP або облікових даних.
> 🐾 **Порада:** PortSwiggers [Turbo Intruder](https://portswigger.net/research/turbo-intruder) підтримує HTTP/2 і дозволяє вам точно налаштувати `maxConcurrentConnections` та `requestsPerConnection`, щоб автоматизувати цю атаку.
### Псевдоніми GraphQL та пакетні операції
GraphQL дозволяє клієнту надсилати **кілька логічно незалежних запитів або мутацій в одному запиті**, префіксуючи їх *псевдонімами*. Оскільки сервер виконує кожен псевдонім, але обмежувач швидкості часто враховує лише *один* запит, це надійний спосіб обійти обмеження на вхід до системи або скидання пароля.
```graphql
mutation bruteForceOTP {
a: verify(code:"111111") { token }
b: verify(code:"222222") { token }
c: verify(code:"333333") { token }
# … add up to dozens of aliases …
}
```
Дивіться на відповідь: точно один псевдонім поверне 200 OK, коли буде введено правильний код, тоді як інші обмежені за швидкістю.
Цю техніку популяризували дослідження PortSwigger про “GraphQL batching & aliases” у 2023 році, і вона стала причиною багатьох нещодавніх виплат за вразливості.
### Зловживання *batch* або *bulk* REST кінцевими точками
Деякі API відкривають допоміжні кінцеві точки, такі як `/v2/batch`, або приймають **масив об'єктів** у тілі запиту. Якщо обмежувач розташований лише перед *старими* кінцевими точками, обгортання кількох операцій в один запит на масове оброблення може повністю обійти захист.
```json
[
{"path": "/login", "method": "POST", "body": {"user":"bob","pass":"123"}},
{"path": "/login", "method": "POST", "body": {"user":"bob","pass":"456"}}
]
```
### Тайминг ковзного вікна
Класичний лімітатор токенів або лімітатор з витоком *скидається* на фіксованій часовій межі (наприклад, кожну хвилину). Якщо вікно відоме (наприклад, через повідомлення про помилки, такі як `X-RateLimit-Reset: 27`), надішліть максимальну дозволену кількість запитів **безпосередньо перед** скиданням кошика, а потім відразу надішліть ще один повний сплеск.
```
|<-- 60 s window ->|<-- 60 s window ->|
###### ######
```
Ця проста оптимізація може більш ніж подвоїти вашу пропускну здатність, не торкаючись жодної іншої техніки обходу.
---
## Інструменти
- [**https://github.com/Hashtag-AMIN/hashtag-fuzz**](https://github.com/Hashtag-AMIN/hashtag-fuzz): Інструмент для фуззингу, який підтримує рандомізацію заголовків, розділені списки слів та ротацію проксі-серверів за принципом кругового обертання.
- [**https://github.com/ustayready/fireprox**](https://github.com/ustayready/fireprox): Автоматично створює одноразові кінцеві точки AWS API Gateway, щоб кожен запит походив з різної IP-адреси ідеально для подолання обмежень на основі IP.
- **Burp Suite IPRotate + розширення**: Використовує пул SOCKS/HTTP проксі (або AWS API Gateway) для прозорої ротації вихідної IP-адреси під час атак *Intruder* та *Turbo Intruder*.
- **Turbo Intruder (BApp)**: Високопродуктивний атакуючий механізм, що підтримує мультиплексування HTTP/2; налаштуйте `requestsPerConnection` на 100-1000, щоб об'єднати сотні запитів в одне з'єднання.
## Посилання
- PortSwigger Research “Обхід обмежень швидкості за допомогою GraphQL аліасів” (2023) <https://portswigger.net/research/graphql-authorization-bypass>
- PortSwigger Research “HTTP/2: Продовження завжди гірше” (розділ *Обмеження на основі з'єднання*) (2024) <https://portswigger.net/research/http2>
{{#include ../banners/hacktricks-training.md}}