mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-29 08:01:00 +00:00
60 lines
5.8 KiB
Markdown
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 %}
|
|
|
|
**Questo è un riepilogo del post [https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers](https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers)**
|
|
|
|
Gli hop-by-hop headers sono specifici per una singola connessione a livello di trasporto, utilizzati principalmente in HTTP/1.1 per gestire i dati tra due nodi (come client-proxy o proxy-proxy), e non sono destinati ad essere inoltrati. Gli hop-by-hop headers standard includono `Keep-Alive`, `Transfer-Encoding`, `TE`, `Connection`, `Trailer`, `Upgrade`, `Proxy-Authorization` e `Proxy-Authenticate`, come definito in [RFC 2616](https://tools.ietf.org/html/rfc2616#section-13.5.1). Ulteriori intestazioni possono essere designate come hop-by-hop tramite l'intestazione `Connection`.
|
|
|
|
### Abusing Hop-by-Hop Headers
|
|
Una gestione impropria degli hop-by-hop headers da parte dei proxy può portare a problemi di sicurezza. Sebbene ci si aspetti che i proxy rimuovano queste intestazioni, non tutti lo fanno, creando potenziali vulnerabilità.
|
|
|
|
### Testing for Hop-by-Hop Header Handling
|
|
La gestione degli hop-by-hop headers può essere testata osservando i cambiamenti nelle risposte del server quando specifiche intestazioni sono contrassegnate come hop-by-hop. Strumenti e script possono automatizzare questo processo, identificando come i proxy gestiscono queste intestazioni e potenzialmente scoprendo configurazioni errate o comportamenti dei proxy.
|
|
|
|
Abusare degli hop-by-hop headers può portare a varie implicazioni di sicurezza. Di seguito sono riportati un paio di esempi che dimostrano come queste intestazioni possano essere manipolate per potenziali attacchi:
|
|
|
|
### Bypassing Security Controls with `X-Forwarded-For`
|
|
Un attaccante può manipolare l'intestazione `X-Forwarded-For` per bypassare i controlli di accesso basati su IP. Questa intestazione è spesso utilizzata dai proxy per tracciare l'indirizzo IP di origine di un client. Tuttavia, se un proxy tratta questa intestazione come hop-by-hop e la inoltra senza una corretta validazione, un attaccante può falsificare il proprio indirizzo IP.
|
|
|
|
**Scenario di attacco:**
|
|
1. L'attaccante invia una richiesta HTTP a un'applicazione web dietro un proxy, includendo un indirizzo IP falso nell'intestazione `X-Forwarded-For`.
|
|
2. L'attaccante include anche l'intestazione `Connection: close, X-Forwarded-For`, spingendo il proxy a trattare `X-Forwarded-For` come hop-by-hop.
|
|
3. Il proxy mal configurato inoltra la richiesta all'applicazione web senza l'intestazione `X-Forwarded-For` falsificata.
|
|
4. L'applicazione web, non vedendo l'intestazione originale `X-Forwarded-For`, potrebbe considerare la richiesta come proveniente direttamente da un proxy fidato, consentendo potenzialmente accessi non autorizzati.
|
|
|
|
### Cache Poisoning via Hop-by-Hop Header Injection
|
|
Se un server di cache memorizza erroneamente contenuti basati su hop-by-hop headers, un attaccante potrebbe iniettare intestazioni dannose per avvelenare la cache. Questo servirebbe contenuti errati o dannosi agli utenti che richiedono la stessa risorsa.
|
|
|
|
**Scenario di attacco:**
|
|
1. Un attaccante invia una richiesta a un'applicazione web con un'intestazione hop-by-hop che non dovrebbe essere memorizzata nella cache (ad esempio, `Connection: close, Cookie`).
|
|
2. Il server di cache mal configurato non rimuove l'intestazione hop-by-hop e memorizza la risposta specifica per la sessione dell'attaccante.
|
|
3. Gli utenti futuri che richiedono la stessa risorsa ricevono la risposta memorizzata nella cache, che era personalizzata per l'attaccante, portando potenzialmente a un furto di sessione o all'esposizione di informazioni sensibili.
|
|
|
|
{% 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 %}
|