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

5.7 KiB

hop-by-hop headers

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

To jest podsumowanie posta https://nathandavison.com/blog/abusing-http-hop-by-hop-request-headers

Nagłówki hop-by-hop są specyficzne dla pojedynczego połączenia na poziomie transportu, używane głównie w HTTP/1.1 do zarządzania danymi między dwoma węzłami (takimi jak klient-proxy lub proxy-proxy) i nie są przeznaczone do przekazywania. Standardowe nagłówki hop-by-hop obejmują Keep-Alive, Transfer-Encoding, TE, Connection, Trailer, Upgrade, Proxy-Authorization i Proxy-Authenticate, zgodnie z definicją w RFC 2616. Dodatkowe nagłówki mogą być oznaczone jako hop-by-hop za pomocą nagłówka Connection.

Abusing Hop-by-Hop Headers

Nieprawidłowe zarządzanie nagłówkami hop-by-hop przez proxy może prowadzić do problemów z bezpieczeństwem. Chociaż od proxy oczekuje się usunięcia tych nagłówków, nie wszystkie to robią, co stwarza potencjalne luki.

Testing for Hop-by-Hop Header Handling

Zarządzanie nagłówkami hop-by-hop można testować, obserwując zmiany w odpowiedziach serwera, gdy konkretne nagłówki są oznaczone jako hop-by-hop. Narzędzia i skrypty mogą zautomatyzować ten proces, identyfikując, jak proxy zarządzają tymi nagłówkami i potencjalnie odkrywając błędne konfiguracje lub zachowania proxy.

Nadużywanie nagłówków hop-by-hop może prowadzić do różnych implikacji bezpieczeństwa. Poniżej znajdują się dwa przykłady ilustrujące, jak te nagłówki mogą być manipulowane w celu potencjalnych ataków:

Bypassing Security Controls with X-Forwarded-For

Atakujący może manipulować nagłówkiem X-Forwarded-For, aby obejść kontrolę dostępu opartą na IP. Ten nagłówek jest często używany przez proxy do śledzenia oryginalnego adresu IP klienta. Jednak jeśli proxy traktuje ten nagłówek jako hop-by-hop i przekazuje go bez odpowiedniej walidacji, atakujący może sfałszować swój adres IP.

Scenariusz ataku:

  1. Atakujący wysyła żądanie HTTP do aplikacji internetowej za proxy, w tym fałszywy adres IP w nagłówku X-Forwarded-For.
  2. Atakujący również dołącza nagłówek Connection: close, X-Forwarded-For, co skłania proxy do traktowania X-Forwarded-For jako hop-by-hop.
  3. Źle skonfigurowane proxy przekazuje żądanie do aplikacji internetowej bez sfałszowanego nagłówka X-Forwarded-For.
  4. Aplikacja internetowa, nie widząc oryginalnego nagłówka X-Forwarded-For, może uznać żądanie za pochodzące bezpośrednio z zaufanego proxy, co potencjalnie umożliwia nieautoryzowany dostęp.

Cache Poisoning via Hop-by-Hop Header Injection

Jeśli serwer cache'ujący błędnie buforuje zawartość na podstawie nagłówków hop-by-hop, atakujący może wstrzyknąć złośliwe nagłówki, aby zatruć pamięć podręczną. To spowoduje dostarczenie nieprawidłowej lub złośliwej zawartości użytkownikom żądającym tego samego zasobu.

Scenariusz ataku:

  1. Atakujący wysyła żądanie do aplikacji internetowej z nagłówkiem hop-by-hop, który nie powinien być buforowany (np. Connection: close, Cookie).
  2. Źle skonfigurowany serwer cache'ujący nie usuwa nagłówka hop-by-hop i buforuje odpowiedź specyficzną dla sesji atakującego.
  3. Przyszli użytkownicy żądający tego samego zasobu otrzymują buforowaną odpowiedź, która była dostosowana do atakującego, co potencjalnie prowadzi do przejęcia sesji lub ujawnienia wrażliwych informacji.

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}