hop-by-hop headers

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Questo è un riassunto del post https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers

Le intestazioni hop-by-hop sono specifiche per una singola connessione di livello di trasporto, utilizzate principalmente in HTTP/1.1 per gestire i dati tra due nodi (come client-proxy o proxy-proxy) e non sono destinate ad essere inoltrate. Le intestazioni hop-by-hop standard includono Keep-Alive, Transfer-Encoding, TE, Connection, Trailer, Upgrade, Proxy-Authorization e Proxy-Authenticate, come definito in RFC 2616. Ulteriori intestazioni possono essere designate come hop-by-hop tramite l'intestazione Connection.

Abuso delle intestazioni hop-by-hop

Una gestione impropria delle intestazioni hop-by-hop 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à.

Test per la gestione delle intestazioni hop-by-hop

La gestione delle intestazioni hop-by-hop può essere testata osservando le modifiche 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 errori di configurazione o comportamenti dei proxy.

L'abuso delle intestazioni hop-by-hop può portare a varie implicazioni di sicurezza. Di seguito sono riportati alcuni esempi che mostrano come queste intestazioni possono essere manipolate per potenziali attacchi:

Eludere i controlli di sicurezza con X-Forwarded-For

Un attaccante può manipolare l'intestazione X-Forwarded-For per eludere i controlli di accesso basati sull'indirizzo IP. Questa intestazione viene 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 convalida, 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, inducendo il proxy a trattare X-Forwarded-For come hop-by-hop.

  3. Il proxy configurato in modo errato inoltra la richiesta all'applicazione web senza l'intestazione falsificata X-Forwarded-For.

  4. L'applicazione web, non vedendo l'intestazione X-Forwarded-For originale, potrebbe considerare la richiesta come proveniente direttamente da un proxy attendibile, consentendo potenzialmente l'accesso non autorizzato.

Avvelenamento della cache tramite l'iniezione di intestazioni hop-by-hop

Se un server di cache memorizza in modo errato i contenuti in base alle intestazioni hop-by-hop, un attaccante potrebbe iniettare intestazioni malevole per avvelenare la cache. Ciò servirebbe contenuti errati o malevoli 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 configurato in modo errato 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 è stata adattata per l'attaccante, potenzialmente portando a dirottamenti di sessione o esposizione di informazioni sensibili.

Impara l'hacking di AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Last updated