Cross-Site Scripting

Web Uygulama Güvenliği

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) <ScRipT>alealertrt(#######(# işareti koyduğum yerleri oranın çerez politikasına göre düzenleyebilirsiniz iç içe yazarsanız bypass etmeniz daha kolay olacaktır).cookie)</ScRipT>

2 comments

Bir cevap yazın