🔍 Black-box фингерпринт reverse proxy
Небольшой чек-лист для быстрого фингерпринта ⬇️
1️⃣ Заголовки ответов на успешные запросы
curl -sk -D- https://target/ -o /dev/null
HAProxy и Traefik не добавляют собственных заголовков, а обычно просто проксируют заголовок Server, который возвращает бэкенд.
2️⃣ Сигнатуры страниц с ошибками
curl -sk https://target:443/nonexistent-path-xyz
Страницы ошибок часто позволяют определить используемый reverse proxy. Например, встроенная страница 403 Forbidden у HAProxy содержит строку "Request forbidden by administrative rules", характерную именно для него.
3️⃣ Subject в TLS-сертификате
curl -skv https://target:443/ 2>&1 | grep "subject:"
Traefik с дефолтной конфигурацией использует автоматически сгенерированный сертификат с CN=TRAEFIK DEFAULT CERT. Это хороший индикатор dev-окружений, хотя в проде обычно используются кастомные сертификаты.
4️⃣ Согласование протокола через Application-Layer Protocol Negotiation (ALPN)
Проверь, какие протоколы сервер объявляет через ALPN и какие фактически обрабатывает:
curl -skv --http2 https://target:443/ 2>&1 | grep "ALPN"
Один из самых характерных признаков HAProxy: во время согласования ALPN сервер объявляет только поддержку HTTP/1.1, но всё равно обрабатывает HTTP/2, если клиент проигнорирует результат ALPN и сразу отправит HTTP/2 connection preface.
5️⃣ Метод исключения
Если сигнатур Envoy, Caddy, Nginx, Apache и HAProxy нет, вероятно, используется Traefik с кастомным сертификатом.
@BugBountyRu 🕷 Буст каналу
Прежде чем искать байпасы средств защиты, полезно понять, какой reverse proxy стоит перед приложением 🤔
Это помогает выбрать подходящие техники тестирования, понять особенности маршрутизации и быстрее найти потенциальные векторы атак.
Небольшой чек-лист для быстрого фингерпринта ⬇️
1️⃣ Заголовки ответов на успешные запросы
curl -sk -D- https://target/ -o /dev/null
HAProxy и Traefik не добавляют собственных заголовков, а обычно просто проксируют заголовок Server, который возвращает бэкенд.
2️⃣ Сигнатуры страниц с ошибками
curl -sk https://target:443/nonexistent-path-xyz
Страницы ошибок часто позволяют определить используемый reverse proxy. Например, встроенная страница 403 Forbidden у HAProxy содержит строку "Request forbidden by administrative rules", характерную именно для него.
3️⃣ Subject в TLS-сертификате
curl -skv https://target:443/ 2>&1 | grep "subject:"
Traefik с дефолтной конфигурацией использует автоматически сгенерированный сертификат с CN=TRAEFIK DEFAULT CERT. Это хороший индикатор dev-окружений, хотя в проде обычно используются кастомные сертификаты.
4️⃣ Согласование протокола через Application-Layer Protocol Negotiation (ALPN)
Проверь, какие протоколы сервер объявляет через ALPN и какие фактически обрабатывает:
curl -skv --http2 https://target:443/ 2>&1 | grep "ALPN"
Один из самых характерных признаков HAProxy: во время согласования ALPN сервер объявляет только поддержку HTTP/1.1, но всё равно обрабатывает HTTP/2, если клиент проигнорирует результат ALPN и сразу отправит HTTP/2 connection preface.
5️⃣ Метод исключения
Если сигнатур Envoy, Caddy, Nginx, Apache и HAProxy нет, вероятно, используется Traefik с кастомным сертификатом.
@BugBountyRu 🕷 Буст каналу