¿Qué hace http-host-header-attacks?
Libro de jugadas para inyección del encabezado HTTP Host y abuso de enrutamiento. Úselo cuando la aplicación confíe en el encabezado Host para generar URLs, enrutar solicitudes o control de acceso, lo que permite envenenamiento de restablecimiento de contraseña, envenenamiento de caché web, SSRF a través de enrutamiento y omisión de host virtual.
Técnicas
- Inyección de encabezado Host: Manipule el valor del encabezado
Hostpara inyectar contenido o redirigir al usuario a un sitio malicioso. - Envenenamiento de restablecimiento de contraseña: Modifique el encabezado
Hostpara que el enlace de restablecimiento de contraseña apunte a un servidor controlado por el atacante. - Envenenamiento de caché web: Almacene en caché una respuesta maliciosa para que se sirva a otros usuarios.
- SSRF a través de enrutamiento: Use el encabezado
Hostpara que el servidor realice solicitudes a direcciones internas. - Omisión de host virtual: Acceda a contenido de otros hosts virtuales manipulando el encabezado
Host.
Ejemplo de uso con Burp Suite
- Intercepte una solicitud con Burp Suite.
- Cambie el encabezado
Hosta un valor alternativo (por ejemplo,evil.com). - Observe si la aplicación refleja ese valor en la respuesta o lo usa para generar URLs.
- Si es vulnerable, pruebe ataques como envenenamiento de restablecimiento de contraseña.
Script de ejemplo con curl
curl -H "Host: evil.com" http://example.com/reset-password
Prevención
- No confíe en el encabezado
Hostpara generar URLs absolutas. - Valide el valor del encabezado
Hostcontra una lista blanca de dominios permitidos. - Use variables de entorno como
SERVER_NAMEen lugar del encabezadoHost. - Configure correctamente los hosts virtuales para evitar omisiones.