hop-by-hop headers

Support HackTricks

Este es un resumen de la publicación https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers

Los encabezados hop-by-hop son específicos de una única conexión a nivel de transporte, utilizados principalmente en HTTP/1.1 para gestionar datos entre dos nodos (como cliente-proxy o proxy-proxy), y no están destinados a ser reenviados. Los encabezados 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. Encabezados adicionales pueden ser designados como hop-by-hop a través del encabezado Connection.

Abusing Hop-by-Hop Headers

La gestión inadecuada de los encabezados hop-by-hop por parte de los proxies puede llevar a problemas de seguridad. Si bien se espera que los proxies eliminen estos encabezados, no todos lo hacen, creando vulnerabilidades potenciales.

Testing for Hop-by-Hop Header Handling

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

Abusar de los encabezados hop-by-hop puede llevar a diversas implicaciones de seguridad. A continuación se presentan un par de ejemplos que demuestran cómo estos encabezados pueden ser manipulados para ataques potenciales:

Bypassing Security Controls with X-Forwarded-For

Un atacante puede manipular el encabezado X-Forwarded-For para eludir controles de acceso basados en IP. Este encabezado es utilizado a menudo por proxies para rastrear la dirección IP de origen de un cliente. Sin embargo, si un proxy trata este encabezado como hop-by-hop y lo reenvía sin la validación adecuada, un atacante puede suplantar 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 el encabezado X-Forwarded-For.

  2. El atacante también incluye el encabezado Connection: close, X-Forwarded-For, lo que lleva al proxy a tratar X-Forwarded-For como hop-by-hop.

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

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

Cache Poisoning via Hop-by-Hop Header Injection

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

Escenario de Ataque:

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

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

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

Support HackTricks

Last updated