Special HTTP headers
Last updated
Last updated
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Przepisz IP źródłowe:
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Forwarded: 127.0.0.1
Forwarded-For: 127.0.0.1
X-Forwarded-Host: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-ProxyUser-Ip: 127.0.0.1
X-Original-URL: 127.0.0.1
Client-IP: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Host: 127.0.0.1
True-Client-IP: 127.0.0.1
Cluster-Client-IP: 127.0.0.1
Via: 1.0 fred, 1.1 127.0.0.1
Connection: close, X-Forwarded-For
(Sprawdź nagłówki hop-by-hop)
Przepisz lokację:
X-Original-URL: /admin/console
X-Rewrite-URL: /admin/console
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.
Connection: close, X-Forwarded-For
Content-Length: 30
Transfer-Encoding: chunked
Nagłówki pamięci podręcznej serwera:
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
Podobne zachowanie w nagłówku Cf-Cache-Status
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
Nagłówki pamięci podręcznej lokalnej:
Clear-Site-Data
: Nagłówek wskazujący, które dane w pamięci podręcznej powinny zostać usunięte: Clear-Site-Data: "cache", "cookies"
Expires
: Zawiera datę/godzinę, kiedy odpowiedź powinna wygasnąć: Expires: Wed, 21 Oct 2015 07:28:00 GMT
Pragma: no-cache
to samo co Cache-Control: no-cache
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>
Range
: Wskazuje część dokumentu, którą serwer powinien zwrócić.
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-Length
: Rozmiar zasobu, w dziesiętnych bajtach.
Content-Type
: Wskazuje typ mediów zasobu
Content-Encoding
: Używane do określenia algorytmu kompresji.
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
Server: Apache/2.4.1 (Unix)
X-Powered-By: PHP/5.3.3
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:
To oznacza, że plik o nazwie "filename.jpg" ma być pobrany i zapisany.
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:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)