XSS (Cross-site Scripting) Zafiyeti Nedir?
Kaba yorum ile; web uygulamasında açığın meydana geldiği input/inject point (veri girişi) alanına gönderilen kötü niyetli javascript kodlarının, kullanıcının web tarayıcısında çalıştırıldığı bir saldırı türüdür. Yani Client-Side (kullanıcı taraflı) bir saldırıdır.
URL adreslerindeki query stringler ve form alanlarında sıklıkla görülür.
Phishing saldırılarına zemin oluşturur.
Genellikle POST ve GET metotlarının kullanıldığı alanlarda olur.
Çeşitleri:
Reflected (Yansıyan), Stored (Depolanan) ve Dom-based olarak üç çeşittir.
Reflected XSS
Stored XSS
Etkileri:
Yazılım betiklerinin kullanıcı tarafında çalıştırılması sonucunda kullanıcının oturum bilgileri çalınabilir, web tarayıcısı (browser) ele geçirilebilir veya bilgisayarına zararlı kodlar enjekte edilebilir ve bilgisayar yönetimi ele geçirilebilir…
XSS Zafiyeti Nasıl Oluşur?
Temel olarak web uygulamada kullanıcının veri girişi yaptığı alanlarda meta-karakterlerin filtrelenmemesinden kaynaklanmaktdır.
XSS Zafiyetine Nasıl Önlem Alınabilir?
- Web uygulamasında kullanıcının veri girişine izin verilen alanlarda filtreleme yaparak bu açıkları kapatabilirsiniz. Veri girişinin filtrelenmesi kadar veri çıkışının da incelenmesi web uygulamalarının güvenliğini arttıracaktır.Aşağıda belirtilen meta-karakterlerin filtrelenmesi web uygulamaların XSS saldırılarına karşı güvenliğini sağlayacaktır:
[‘],[<],[>],[;],[/],[?],[=],[&],[#],[%],[],[],[|],[@],[],[“]
- Çerezlerin güvenli hale getirilmesi web uygulamalarının güvenliğini arttırmak adına yapılabilecek en önemli işlemlerdendir. Çerezler içinde kullanıcı adı, şifre ve oturum durumunun saklanmasından kaçınılmalıdır. Eğer tutulması gerekiyorsa şifreli olarak tutulması tercih edilmelidir.
- Donanımsal/Yazılımsal Web Application Firewall (WAF) ile web uygulamasında varolan bir zafiyetin saldırgan tarafından keşfedilme aşamasını zorlaştırıp, loglayıp, bloklayabilirsiniz.
- Belirli periyotlarda içeriden ve dışarıdan web uygulama güvenlik testleri (penetrasyon testi) yaptırarak güvenlik açıklarının keşfi ve önlem alınması sisteminizi daha güvenli kılacaktır.
Xenotix XSS Exploit Framework ile Web Uygulamada XSS Tespiti
Xenotix XSS Exploit Framework Nedir? Ne iş yapar bu alet?
Web uygulamalarında çeşitli yöntemlerle XSS zafiyetinin keşfi ve sonrasında bulunan zafiyeti sömürebilmek için bünyesinde birçok exploiting araçları bulunmaktadır.
Amaç:
Hedef web uygulamasının veri girişi yapılabilen bir alanını (inject point) göze kestirip o alana yaklaşık 1600 küsür XSS payloadını otomatik test eden Xenotix programını kullanarak XSS tespit etmek.
Xenotix XSS Exploit Framework İndir/Download
Kullanımı:
Programı indirip çalıştırdığımızda hemen Settings menüsü altından Configure Server seçeneğine girip çıkan pencereden Xenotix’in XSS exploiting için kullandığı QuickPHP Web Server servisin başlaması için Start butonuna bastığımızda artık program iş yapmaya hazır hale gelecektir.
Hide butonuna basarak popup pencereyi kapatabilirsiniz.
URL kısmına hedef web uygulamasının linki eklenip Parameter kısmına da XSS’e uğrayan parametreyi yazıyoruz:
Daha sonra Scanner menüsünün altından GET Request Manuel Mode seçeneğini tercih edersek bir XSS payload sayacıyla karşılaşacağız ve Next Payload dedikçe sırayla kodları parametre sonrasına ekleyip üç farklı web tarayıcı üzerinde sonucu gösterecektir. Eğer GET Request Auto Mode seçeneğini tercih edersek de sayaçla uğraşmayacağız, Xenotix kendisi sırayla XSS payloadlarını deneyecektir, bize sadece ekrandan takip etmek düşecektir:
Görüldüğü gibi ben manuel modu seçtim ve next diyerek 19. payloadda XSS’i yakaladım. Üç farklı web tarayıcısında da başarılı bir şekilde çalıştığını gördüm.
Payload bölümünden hedef parametreye hangi XSS paylodının kullanıldığını görebiliriz.
NOT: Bir sonraki Xenotix makalemde, keşfedilen XSS zafiyeti sonrası programın exploiting özelliklerinden bahsedeceğim.