3.7 KiB
hop-by-hop headers
{{#include ../banners/hacktricks-training.md}}
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.
Wykorzystywanie nagłówków hop-by-hop
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.
Testowanie obsługi nagłówków hop-by-hop
Obsługę nagłówków 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.
Wykorzystywanie nagłówków hop-by-hop może prowadzić do różnych implikacji bezpieczeństwa. Poniżej znajdują się kilka przykładów ilustrujących, jak te nagłówki mogą być manipulowane w celu potencjalnych ataków:
Ominięcie kontroli bezpieczeństwa za pomocą X-Forwarded-For
Atakujący może manipulować nagłówkiem X-Forwarded-For, aby obejść kontrole dostępu oparte 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:
- Atakujący wysyła żądanie HTTP do aplikacji internetowej za proxy, w tym fałszywy adres IP w nagłówku
X-Forwarded-For. - Atakujący również dołącza nagłówek
Connection: close, X-Forwarded-For, co skłania proxy do traktowaniaX-Forwarded-Forjako hop-by-hop. - Źle skonfigurowane proxy przekazuje żądanie do aplikacji internetowej bez sfałszowanego nagłówka
X-Forwarded-For. - 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.
Zatrucie pamięci podręcznej poprzez wstrzykiwanie nagłówków hop-by-hop
Jeśli serwer pamięci podręcznej 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 serwowanie niepoprawnej lub złośliwej zawartości użytkownikom żądającym tego samego zasobu.
Scenariusz ataku:
- Atakujący wysyła żądanie do aplikacji internetowej z nagłówkiem hop-by-hop, który nie powinien być buforowany (np.
Connection: close, Cookie). - Źle skonfigurowany serwer pamięci podręcznej nie usuwa nagłówka hop-by-hop i buforuje odpowiedź specyficzną dla sesji atakującego.
- Przyszli użytkownicy żądający tego samego zasobu otrzymują buforowaną odpowiedź, która była dostosowana dla atakującego, co potencjalnie prowadzi do przejęcia sesji lub ujawnienia wrażliwych informacji.
{{#include ../banners/hacktricks-training.md}}