Labs de Host Header
Host Header Injection / Password Reset Poisoning
¿Qué es Host Header?
El Host Header Injection abusa de aplicaciones que confían en la cabecera Host (o X-Forwarded-Host) del request. Al manipularla se envenena el enlace de recuperación de contraseña (el token de la víctima llega al atacante), se envenena la caché con URLs hacia tu dominio y, con ciertos proxies, se fuerza un SSRF de routing.
¿Por qué practicar Host Header?
Muchísimas apps construyen enlaces absolutos (reset, verificación, invitaciones) a partir del Host del request sin validarlo. Es un bug fácil de probar pero de alto impacto: el password reset poisoning es account takeover directo. Bounties típicos: $500-$8,000, y más si escala a SSRF de routing.
¿Qué aprenderás con los labs de Host Header?
Aprenderás a manipular el Host y sus variantes de proxy, detectar dónde se refleja o se usa para generar URLs, envenenar el enlace de reset para robar el token de la víctima, envenenar la caché con un Host inesperado, y forzar SSRF cuando el enrutado del edge depende del Host.
Tipos de Host Header que cubrimos
- Password reset poisoning
La app construye el enlace de recuperación con el Host del request. Lo cambias a tu dominio y el token de reset de la víctima acaba en tu servidor.
- Cache poisoning vía Host
El Host (o X-Forwarded-Host) se refleja en la respuesta y se cachea, sirviendo tu contenido, canonical o redirect a todos los usuarios.
- Routing-based SSRF
Un proxy o load balancer enruta según el Host; apuntándolo a un servicio interno fuerzas al edge a hablar con recursos privados.
- Web cache / dominio inesperado
Un Host inesperado hace que el back-end genere URLs absolutas, etiquetas canónicas o scripts apuntando a tu dominio.
¿Cómo encontrar y explotar Host Header?
Playbook práctico — del recon a la prueba de concepto.
- 1
Manipular el Host y sus variantes
Cambia la cabecera Host y prueba X-Forwarded-Host, X-Host y X-Forwarded-Server. Observa si el valor acaba reflejado o usado para construir enlaces.
Host: evil.com · X-Forwarded-Host: evil.com - 2
Detectar dónde se usa el Host
Busca respuestas que reflejen tu Host (canonical, scripts, redirects) o funciones que generen URLs absolutas con él (emails, enlaces).
<link rel=canonical href="https://evil.com/..."> · Location: https://evil.com/... - 3
Envenenar el enlace de reset
Pide un reset de contraseña de una cuenta tuya con Host malicioso y comprueba si el enlace del email apunta a tu dominio.
POST /forgot-password Host: evil.com body: email=yo@x.com → enlace: https://evil.com/reset?token=... - 4
Robar el token de la víctima
Si funciona, repítelo contra la cuenta de la víctima: cuando pida reset, su token viajará a tu servidor y tomas el control de su cuenta.
Log de evil.com: GET /reset?token=TOKEN_DE_LA_VICTIMA - 5
Forzar SSRF de routing
Si un proxy enruta por Host, apúntalo a localhost o a la metadata cloud para alcanzar servicios internos desde el edge.
Host: 169.254.169.254 · Host: localhost
Cargando labs...
Ver en catálogo completo →Preguntas frecuentes
¿Qué es el Host Header Injection?
Es una vulnerabilidad en la que la aplicación confía en la cabecera Host (o X-Forwarded-Host) del request para construir URLs, enrutar o cachear. Manipulándola, el atacante desvía enlaces hacia su dominio, envenena la caché o fuerza al servidor a hablar con recursos internos.
¿Cómo se explota el password reset poisoning?
Se solicita un reset de contraseña enviando un Host o X-Forwarded-Host malicioso. Si la app genera el enlace de recuperación con ese valor, el correo de la víctima contendrá una URL hacia el dominio del atacante; cuando la víctima (o un fetch previo) abre el enlace, el token de reset se filtra y se toma la cuenta.
¿Cómo encontrar Host Header Injection en bug bounty?
Reenvía peticiones cambiando el Host y añadiendo X-Forwarded-Host, y observa si el valor se refleja en la respuesta o en los enlaces generados. El objetivo más rentable es el flujo de reset de contraseña: pide un reset con Host malicioso y revisa a qué dominio apunta el enlace del email.
¿Cómo prevenir el Host Header Injection?
No construyas URLs a partir del Host del request: usa un dominio canónico configurado en el servidor. Valida el Host contra una allowlist, ignora cabeceras de proxy no fiables (X-Forwarded-Host) salvo detrás de un proxy de confianza, y genera los enlaces de reset con una base absoluta fija.
¿Diferencia entre Host Header Injection y SSRF?
El Host Header Injection manipula la cabecera Host para envenenar enlaces, caché o el routing. Cuando el edge enruta según el Host y lo apuntas a un interno, ese caso concreto se convierte en un SSRF de routing. El SSRF genérico, en cambio, abusa de una feature que fetchea una URL que tú controlas, no del Host.
Otras categorías relacionadas
- hunters entrenando
- 650
- labs de reportes reales
- 50
- completaciones
- 380
- en bounties practicados
- $200.000
hunters entrenando
labs de reportes reales
completaciones
en bounties practicados
Practica Host Header en labs reales
Cada lab de Host Header replica un reporte real de bug bounty que se pagó. Crea tu cuenta gratis, empieza por la Academy y pasa a los labs cuando quieras.
Sin tarjeta · Academy gratis · cancela cuando quieras