hacktricks/src/pentesting-web/http-connection-request-smuggling.md

35 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# HTTP Connection Request Smuggling
{{#include ../banners/hacktricks-training.md}}
**Це резюме посту** [**https://portswigger.net/research/browser-powered-desync-attacks**](https://portswigger.net/research/browser-powered-desync-attacks)
## Атаки на стан з'єднання <a href="#state" id="state"></a>
### Валідація першого запиту
При маршрутизації запитів зворотні проксі можуть покладатися на **заголовок Host**, щоб визначити сервер на задньому плані, часто спираючись на білий список хостів, яким дозволено доступ. Однак у деяких проксі існує вразливість, де білий список застосовується лише до початкового запиту в з'єднанні. Внаслідок цього зловмисники можуть скористатися цим, спочатку зробивши запит до дозволеного хоста, а потім запитуючи внутрішній сайт через те ж з'єднання:
```
GET / HTTP/1.1
Host: [allowed-external-host]
GET / HTTP/1.1
Host: [internal-host]
```
### First-request Routing
В деяких конфігураціях, фронтальний сервер може використовувати **заголовок Host першого запиту** для визначення маршрутизації на бекенді для цього запиту, а потім постійно маршрутизувати всі наступні запити з того ж клієнтського з'єднання до того ж бекенд-з'єднання. Це можна продемонструвати як:
```
GET / HTTP/1.1
Host: example.com
POST /pwreset HTTP/1.1
Host: psres.net
```
Цю проблему можна потенційно поєднати з [атаками на заголовок Host](https://portswigger.net/web-security/host-header), такими як отруєння скидання пароля або [отруєння веб-кешу](https://portswigger.net/web-security/web-cache-poisoning), щоб експлуатувати інші вразливості або отримати несанкціонований доступ до додаткових віртуальних хостів.
> [!NOTE]
> Для виявлення цих вразливостей можна використовувати функцію 'connection-state probe' у HTTP Request Smuggler.
{{#include ../banners/hacktricks-training.md}}