Host Header Injection

Cria dado de teste (use o prefixo pentest_). Limpe depois. Só em alvo seu ou autorizado por escrito.

O vetor

Vetor: o app confia no header Host para montar links (ex.: reset de senha) → link de reset aponta para o site do atacante. O que testamos: se o Host/X-Forwarded-Host altera o comportamento.

Os passos

Passo 1 (🟡) — forjar Host no fluxo de reset:

curl -s -X POST "$BASE/api/auth/reset" -H "Host: pentest-evil.example" \
  -H "Content-Type: application/json" -d '{"email":"pentest_you@example.com"}' -w "\n%{http_code}\n"
# O e-mail de reset chega com link para pentest-evil.example? = vulnerável

O que esperar

  • VULNERÁVEL: links/tokens usam o Host forjado.
  • SEGURO: host canônico fixo no servidor; ignora X-Forwarded-Host não confiável.

Como corrigir

Correção (P1): definir domínio canônico; validar Host contra allowlist. Limpeza: ignore o e-mail de teste.

PurpleLab // plataforma de treino ofensivo + defensivo // Fase 1 — portal dinamico