HTTP LAB · DEMO

HTTP Request Handling Anomalies Lab

Учебный лендинг с интерактивными демо по аномалиям обработки HTTP‑запросов, включая обход маршрутизации первого запроса (first‑request routing bypass) и другие нетривиальные кейсы.

Базовый HTTP‑запрос

Классический пример: внешний клиент обращается к публичному хосту, но где‑то по пути (на прокси или балансировщике) появляются дополнительные заголовки, влияющие на маршрутизацию.

GET /intranet HTTP/1.1
Host: example.com
X-Forwarded-Host: intranet.example

Для чего нужна лаборатория

Лаборатория помогает воспроизводить и исследовать ситуации, когда:

  • прокси проверяет только первый запрос в соединении;
  • внутренние и внешние хосты смешиваются в одном TLS‑канале;
  • комбинации Host и X-Forwarded-Host приводят к неожиданной маршрутизации.

Маршрут одного TLS‑соединения

Один TCP/TLS‑канал может обслуживать несколько HTTP‑запросов с разными заголовками Host. Если гейтвей доверяет только первому значению или неправильно обрабатывает форвардинг, запросы могут попасть на внутренние виртуальные хосты.

Клиент
Прокси / балансировщик
Бэкенд
браузер
проверка только
первого запроса
example.com
/ intranet.example

Лаборатория позволяет пошагово прокрутить такие сценарии и увидеть, как изменится маршрут при разных сочетаниях заголовков.

Интерактивный пример маршрутизации

Ниже — упрощённый конструктор HTTP‑запроса. Меняйте значения Host и X-Forwarded-Host, чтобы увидеть, какой запрос уйдёт на бэкенд и как может измениться цель маршрута.

То, что видит браузер в адресной строке / DNS‑записи.
Часто устанавливается прокси/балансировщиком, может влиять на выбор виртуального хоста на бэкенде.
Например: /, /admin, /intranet.
Сформированный HTTP‑запрос
GET /intranet HTTP/1.1
Host: example.com

# X-Forwarded-Host не установлен
Маршрутизация: внешний хост example.com.
Прокси не меняет цель запроса, он идёт на публичный виртуальный хост.
клиентпрокси (первый Host: example.com)backend: example.com