Cross-Site Scripting
Siteler arası komut çalıştırma (XSS), web tarafında oluşan bir güvenlik açığıdır. Bu zafiyet web sayfalarındaki veri giriş alanlarına veya url kısımlarına girilen verilerin gerekli filtrelemelerden geçmemesi sonucunda sayfada çalışan HTML veya javascript kodlarıdır. Yani XSS bir saldırganın , kurban kişinin tarayıcısında zararlı javascript kodu çalıştırmasına imkan sağlayan kod injection saldırısıdır. Bildiğiniz üzere bazı giriş sayfalarında “beni hatırla” seçeneği vardır bu seçeneği işaretlediğinizde ve giriş yaptığınızda cookie’lere (çerezlere) sizin kimlik bilgilerinizi kaydeder ve siz o siteye tekrar giriş yaptığınızda size kullanıcı adı ve parola sormadan girişinizi sağlar. Bu web siteye saldırgan bir XSS saldırısında bulunduğu zaman çerezler saldırganın eline geçer ve hesabınız çalınır.
XSS Saldırısının Sunucu Tarafına Verdiği Zararlar:
1)Reflected XSS : Zararlı kodların veya komut dosyalarının çalışmasını sağlayan bir güvenlik açığı bulunan web sitesine istek gönderen bağlantı aracılığıyla çalışır. İstemciden alınan bir girdinin doğrudan ekrana basıldığı durumlarda bu zafiyete rastlanır.
KOD => <script> uyarısı (“b3k0.day”) </script>
2)Stored XSS : Saldırgan hedef sitenin güvenlik açığını her yönden istismar eder. Saldırganın kurban kişiyi taklit etmesine izin veren sunucu/oturum çerezlerini ele geçirmek için kullanılır. Bu saldırıların en tehlikeli yanı; saldırgan virüs,keylogger,kimlik avı vb. saldırıları karşı tarafa(kurban kişi/kişiler) karşı kullanabilir.
3) DOM-based (D-ocument Object Model) : “#” özel karakterinden sonra kod denenmesi ve sayfa yenilendiğinde alert alındığında o sitede DOM XSS güvenlik açığı olduğu tespit edilir.İstemci tarafı komut dosyası çalıştırdığında , komut dosyasının çalıştığı HTML sayfasının DOM’unu kullanabilir. Komut dosyası sayfanın belirli yerlerine erişebilir ve verileri değiştirebilir.
XSS Payload’larında WAF(WEB APPLICATION FIREWALL) BYPASS
Basit XSS payloadları çoğu sitede filtrelenmiş durumdadır yani siz yapısı iyi olan bir web sitesine <script>alert(“XSS”)</script> yazarsanız bu payload’ın burada çalışacağını zannetmem zaten filtrelenmiş ise sayfa bulunamadı yazar. Filtrelenmiş payloadları bypass etmek için ya büyük küçük harf uyumunu kullanmayın ya da iç içe yazın örnek verecek olursam;
1) <ScRipT> istemi (“XSS”) </SCriPt>
2 comments
Emeği geçenlerin eline sağlık, gerçekten çok yararlı bir yazı olmuş.
Teşekkür ederim <3