hop-by-hop headers

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de HackTricks AWS)!

Este es un resumen del post https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers

Las cabeceras hop-by-hop son específicas de una única conexión a nivel de transporte, utilizadas principalmente en HTTP/1.1 para gestionar datos entre dos nodos (como cliente-proxy o proxy-proxy), y no están destinadas a ser reenviadas. Las cabeceras hop-by-hop estándar incluyen Keep-Alive, Transfer-Encoding, TE, Connection, Trailer, Upgrade, Proxy-Authorization y Proxy-Authenticate, según lo definido en RFC 2616. Cabeceras adicionales pueden ser designadas como hop-by-hop a través de la cabecera Connection.

Abuso de las cabeceras hop-by-hop

La gestión incorrecta de las cabeceras hop-by-hop por parte de los proxies puede llevar a problemas de seguridad. Si bien se espera que los proxies eliminen estas cabeceras, no todos lo hacen, lo que crea posibles vulnerabilidades.

Pruebas de manejo de cabeceras hop-by-hop

El manejo de las cabeceras hop-by-hop se puede probar observando los cambios en las respuestas del servidor cuando se marcan ciertas cabeceras como hop-by-hop. Herramientas y scripts pueden automatizar este proceso, identificando cómo los proxies gestionan estas cabeceras y potencialmente descubriendo configuraciones incorrectas o comportamientos de proxy.

El abuso de las cabeceras hop-by-hop puede llevar a diversas implicaciones de seguridad. A continuación se presentan un par de ejemplos que demuestran cómo estas cabeceras pueden ser manipuladas para posibles ataques:

Saltarse controles de seguridad con X-Forwarded-For

Un atacante puede manipular la cabecera X-Forwarded-For para saltarse los controles de acceso basados en IP. Esta cabecera suele ser utilizada por los proxies para rastrear la dirección IP de origen de un cliente. Sin embargo, si un proxy trata esta cabecera como hop-by-hop y la reenvía sin una validación adecuada, un atacante puede falsificar su dirección IP.

Escenario de ataque:

  1. El atacante envía una solicitud HTTP a una aplicación web detrás de un proxy, incluyendo una dirección IP falsa en la cabecera X-Forwarded-For.

  2. El atacante también incluye la cabecera Connection: close, X-Forwarded-For, lo que hace que el proxy trate X-Forwarded-For como hop-by-hop.

  3. El proxy mal configurado reenvía la solicitud a la aplicación web sin la cabecera falsificada X-Forwarded-For.

  4. La aplicación web, al no ver la cabecera original X-Forwarded-For, podría considerar la solicitud como proveniente directamente de un proxy de confianza, lo que potencialmente permite el acceso no autorizado.

Envenenamiento de caché mediante la inyección de cabeceras hop-by-hop

Si un servidor de caché almacena incorrectamente contenido basado en cabeceras hop-by-hop, un atacante podría inyectar cabeceras maliciosas para envenenar la caché. Esto serviría contenido incorrecto o malicioso a los usuarios que soliciten el mismo recurso.

Escenario de ataque:

  1. Un atacante envía una solicitud a una aplicación web con una cabecera hop-by-hop que no debería ser almacenada en caché (por ejemplo, Connection: close, Cookie).

  2. El servidor de caché mal configurado no elimina la cabecera hop-by-hop y almacena la respuesta específica de la sesión del atacante.

  3. Los usuarios futuros que soliciten el mismo recurso reciben la respuesta en caché, que fue adaptada para el atacante, lo que potencialmente lleva al secuestro de sesión o la exposición de información sensible.

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de HackTricks AWS)!

Última actualización