hacktricks/pentesting-web/abusing-hop-by-hop-headers.md

60 lines
5.8 KiB
Markdown

# hop-by-hop headers
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
**Este es un resumen de la publicación [https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers](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](https://tools.ietf.org/html/rfc2616#section-13.5.1). 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.
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}