XSS

Kerem Demirtürk
3 min readJan 15, 2019

Web uygulamalarında bilindiği gibi birçok farklı zaafiyet bulunmaktadır, işte xss de karşımıza bu noktada çıkıyor. Tam ismi CrossSiteScripting olan xss dediğimiz bu şey açık bir dille söylemek gerekirse uygulama tarafından kullanıcı girdisine izin verilmesi ile ortaya çıkar diyebiliriz. Haliyle de bu nedenle çoğu uygulamada karşımıza çıkmaktadır. Şimdi evet bu bir zaafiyet, yani eğer bu açığı bulup da bildirmessek kötü amaçlar için kullanılabilir, kötüye kullanılırsa javascript kodları ile gerçekten de çok kullanışlı bir tehlike haline dönüştürülebileceğinden şüphe yok diyebilirim. Şimdi önce bu xss’in türleri nedir bir bakalım,

1-Yansıtmalı- (Reflected)

Kullanıcıdan alınan girdinin kendine yansıtılması denebilir ya da kullacıdan beklenen parametre yerine zararlı kod yazılarak yapılır, bu tür sunucu tabanlıdır çünkü sunucu tabanlı programlama diline ait girdinin fixlenmemesi sebebi ile oluşur. Örnek olarak web sitelerindeki arama, hata mesajları ve önizleme gibi kısımlar örnek gösterilebilir.

2-Saklı - (Stored)

Bu zaafiyet de yine sunucu tabanlı bir zaafiyettir. Bunda şöyle bir farklılık var ki isminden de anlaşılacağı gibi aslında kullanıcıdan alınan girdi tekrarlıyan bir şekilde karşısına gelir ve bu girdi kayıt altına alınarak saklı bir biçimde yansıtılır. Daha da açıklayıcı olmak gerekirse bu sefer girilen payloadlar anlık olarak kaydedilmez de başka bir veritabanına kaydedilir ve buraya girdiğimiz zaman çalışacak xss kodlarıdır desek daha doğru olur sanırım.

3-Belge Nesne Modeli(DOM)

DOM Xss ile ilgili aslında bunu ben anlatmasam da işin biraz daha hem teorik hemde pratik kısmını benim daha iyi anladığım bir yazıya yönlendirsem sizi gerçekten de çok daha iyi olacaktır.

Aslında xss kısaca böyle diyebilirim, bu yöntemle ister para kazanırsınız ister zararlı kodlar kullanarak kötü şeyler yaparsınız tercih tamamen sizin diyebilirim. Şimdi kendi sanal makinemde de kurulu olan web for pentester adlı uygulamadan bir kaç örnek çözeceğim. Bunu sizde kendi sanal makinenize kurmak isterseniz VMware Fusion 11 i öneririm, indirdikten sonra sizden bir licence key istiyor ama internette aratırsanız karşınıza hemen çıkacaktır zaten. https://pentesterlab.com/exercises/web_for_pentester/ bu siteden iso dosyasını indirerek sanal makinenize hemen kurabilirsiniz. Kurduktan sonra ifconfig komutu ile makinenin ip numarasını hemen tarayıcınıza yazdıktan sonra zaten karşınıza örnekler çıkacaktır. Şimdi gelelim örnekleri yavaştan çözmeye;

Bu arada bir not düşmem gerekirse deneyeceğimiz xss kodlarını ben https://gist.github.com/rvrsh3ll/09a8b933291f9f98e8ec adresinden alıyorum.

Örnek1

Örneğimize tıkladığım zaman karşıma bu sayfa geldi, xss dediğimiz şeyi girdi yazabileceğimiz noktalarda aramak istedim önce sonra arama çubuğunda ki name=hacker gözüme takıldı,

Buraya hacker yerine hackers yazınca aşağıdaki yazının da değiştiğini farkettim ve yerine <<SCRIPT>alert(“XSS”);//<</SCRIPT> kodunu yazdım.

Ve ilk xss imizi de böylece bulmuş olduk.

Örnek3

Bu örneği çözme amacım bu örnekte script yazısı görüldüğü an site korunuyor devamından ama bunu iki defa yaptığımız zaman yine açığı karşımıza çıkarıyor.

Yine karşımıza aynı ekran geliyor.

Devamında ise dediğim gibi iki tane scripti iç içe yazdığımız zaman korumayı ortadan kaldırmış oluyoruz.

Dediğim gibi bu uygulamadan bu örneklerden çözüp kendinizi geliştirebilirsiniz, bir sonraki yazımda tüm çözümleri kendim nasıl farkedip yaptığımı anlatacağım.

Teşekkürler…

--

--