Ucz się i ćwicz Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Ucz się i ćwicz Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Podziel się sztuczkami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.
Nagłówek hop-by-hop to nagłówek, który jest zaprojektowany do przetwarzania i konsumowania przez proxy obsługujące żądanie, w przeciwieństwie do nagłówka end-to-end.
* **`X-Cache`** w odpowiedzi może mieć wartość **`miss`** gdy żądanie nie zostało zapisane w pamięci podręcznej i wartość **`hit`** gdy jest zapisane w pamięci podręcznej
* **`Cache-Control`** wskazuje, czy zasób jest zapisywany w pamięci podręcznej i kiedy będzie następny raz zapisywany w pamięci podręcznej: `Cache-Control: public, max-age=1800`
* **`Vary`** jest często używane w odpowiedzi do **wskazania dodatkowych nagłówków**, które są traktowane jako **część klucza pamięci podręcznej**, nawet jeśli normalnie nie są kluczowane.
* **`Age`** definiuje czas w sekundach, przez jaki obiekt był w pamięci podręcznej proxy.
* **`Server-Timing: cdn-cache; desc=HIT`** również wskazuje, że zasób był zapisany w pamięci podręcznej
*`Warning`: Ogólny nagłówek HTTP **`Warning`** zawiera informacje o możliwych problemach ze statusem wiadomości. W odpowiedzi może pojawić się więcej niż jeden nagłówek `Warning`. `Warning: 110 anderson/1.3.37 "Response is stale"`
* Żądania używające tych nagłówków: **`If-Modified-Since`** i **`If-Unmodified-Since`** będą odpowiadać danymi tylko wtedy, gdy nagłówek odpowiedzi **`Last-Modified`** zawiera inną datę.
* Warunkowe żądania używające **`If-Match`** i **`If-None-Match`** używają wartości Etag, aby serwer WWW wysłał zawartość odpowiedzi, jeśli dane (Etag) się zmieniły. `Etag` jest pobierany z odpowiedzi HTTP.
* Wartość **Etag** jest zazwyczaj **obliczana na podstawie****zawartości** odpowiedzi. Na przykład, `ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"` wskazuje, że `Etag` to **Sha1****37 bajtów**.
* **`Accept-Ranges`**: Wskazuje, czy serwer obsługuje żądania zakresu, a jeśli tak, w jakiej jednostce zakres może być wyrażony. `Accept-Ranges: <range-unit>`
* **`If-Range`**: Tworzy warunkowe żądanie zakresu, które jest spełnione tylko wtedy, gdy podany etag lub data pasuje do zdalnego zasobu. Używane do zapobiegania pobieraniu dwóch zakresów z niekompatybilnych wersji zasobu.
* **`Content-Range`**: Wskazuje, gdzie w pełnej wiadomości ciała należy umieścić wiadomość częściową.
* **`Content-Language`**: Opisuje język(languages) przeznaczony dla odbiorców, aby umożliwić użytkownikowi różnicowanie według własnych preferencji językowych.
* **`Content-Location`**: Wskazuje alternatywną lokalizację dla zwróconych danych.
Z punktu widzenia pentestu te informacje są zazwyczaj "bezużyteczne", ale jeśli zasób jest **chroniony** przez 401 lub 403 i możesz znaleźć jakiś **sposób** na **uzyskanie** tych **informacji**, może to być **interesujące.**\
Na przykład kombinacja **`Range`** i **`Etag`** w żądaniu HEAD może ujawnić zawartość strony za pomocą żądań HEAD:
* Żądanie z nagłówkiem `Range: bytes=20-20` i odpowiedzią zawierającą `ETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"` ujawnia, że SHA1 bajtu 20 to `ETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y`
* **`Allow`**: Ten nagłówek jest używany do komunikowania metod HTTP, które zasób może obsługiwać. Na przykład może być określony jako `Allow: GET, POST, HEAD`, co wskazuje, że zasób obsługuje te metody.
* **`Expect`**: Wykorzystywany przez klienta do przekazywania oczekiwań, które serwer musi spełnić, aby żądanie mogło zostać pomyślnie przetworzone. Typowym przypadkiem użycia jest nagłówek `Expect: 100-continue`, który sygnalizuje, że klient zamierza wysłać dużą ilość danych. Klient oczekuje na odpowiedź `100 (Continue)` przed kontynuowaniem transmisji. Mechanizm ten pomaga w optymalizacji wykorzystania sieci poprzez oczekiwanie na potwierdzenie serwera.
* Nagłówek **`Content-Disposition`** w odpowiedziach HTTP wskazuje, czy plik powinien być wyświetlany **inline** (w obrębie strony) czy traktowany jako **załącznik** (pobierany). Na przykład:
Wymuszając Zaufane Typy za pomocą CSP, aplikacje mogą być chronione przed atakami XSS w DOM. Zaufane Typy zapewniają, że tylko specjalnie przygotowane obiekty, zgodne z ustalonymi politykami bezpieczeństwa, mogą być używane w niebezpiecznych wywołaniach API w sieci, co zabezpiecza kod JavaScript domyślnie.
Ten nagłówek zapobiega sniffingowi typu MIME, praktyce, która może prowadzić do podatności XSS. Zapewnia, że przeglądarki respektują typy MIME określone przez serwer.
Aby zwalczyć clickjacking, ten nagłówek ogranicza sposób, w jaki dokumenty mogą być osadzane w tagach `<frame>`, `<iframe>`, `<embed>` lub `<object>`, zalecając, aby wszystkie dokumenty wyraźnie określały swoje uprawnienia do osadzania.
CORP jest kluczowy dla określenia, które zasoby mogą być ładowane przez strony internetowe, łagodząc cross-site leaks. CORS, z drugiej strony, pozwala na bardziej elastyczny mechanizm udostępniania zasobów między różnymi źródłami, łagodząc politykę tego samego źródła w określonych warunkach.
COEP i COOP są niezbędne do umożliwienia izolacji międzydomenowej, znacznie zmniejszając ryzyko ataków podobnych do Spectre. Kontrolują one ładowanie zasobów międzydomenowych oraz interakcję z oknami międzydomenowymi, odpowiednio.
Na koniec, HSTS to funkcja zabezpieczeń, która zmusza przeglądarki do komunikacji z serwerami tylko za pośrednictwem bezpiecznych połączeń HTTPS, co zwiększa prywatność i bezpieczeństwo.
Ucz się i ćwicz Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Ucz się i ćwicz Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegram**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Dziel się trikami hackingowymi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.