XSS nedir?

XSS hakkında bilgi vermeye çalıştım. İyi okumalar.

XSS nedir?

Cross-site scripting(XSS) nedir?

Cross-site scripting bir diğer adıyla XSS, bir saldırganın kullanıcıların savunmasız bir uygulamayla olan etkileşimlerini tehlikeye atmasına olanak tanıyan bir web güvenlik açığıdır. XSS, kullanıcının gerçekleştirebileceği tüm eylemleri gerçekleştirmesine ve kullanıcının herhangi bir verisine erişmesine olanak tanır. Hedef kullanıcının uygulama içinde ayrıcalıklı erişimi arsa(admin vs.), saldırgan uygulamanın tüm işlevleri ve verileri üzerinde tam kontrol sahibi olabilir.

 

XSS nasıl çalışır?

XSS, zafiyetli bir web sitede JavaScript kodu çalıştırarak gerçekleştirilir. Bu durum kullanıcıları hedef haline getirebilir ve kullanıcıyla web sitesi arasındaki bağlantıyı tehlikeli hale gelebilir.

 

XSS’i deneyimlemek için Metasploit2 labını indirip kullanacağız.

https://sourceforge.net/projects/metasploitable/ sitesinden indirebilirsiniz. Daha sonra Rar dosyasını istediğiniz bir konuma çıkartın. Bu işlemler bittikten sonra VMware’ı açıyoruz.

VMware’ı açtıktan sonra “Open a Virtual Machine” opsiyonuna tıklıyoruz.

Çıkan sekmede, Rar dosyasından çıkarttığımız klasör içerisine giriş yapıyoruz. “Metasploitable” seçtikten sonra “Aç” seçeneğine tıklıyoruz.

Metasploit sizden bir id ve password isteyecektir. İd ve password aynı olmakla birlikte “msfadmin” dir.

Giriş yaptıktan sonra konsoldan “ifconfig” komutunu çalıştırarak sanal makinanın IPv4’ümüzü öğreniyoruz.

Öğrendikten sonra, herhangi bir browserın link kısmına IPv4’ümüzü yazıyoruz. Bu noktada karşımıza birçok lab çıkıyor. Bizim kullanacağımız lab “DVWA”.

DVWA labına girdikten sonra, Username=admin, Password=password kullanarak giriş yapabilirsiniz.

Giriş yaptıktan sonra sağ taraftaki tablodan fark edeceğiniz üzere “XSS reflected” ve “XSS stored” görebilirsiniz. İlgileneceğimiz kısımlar bunlar.

XSS reflected nedir?

Kalıcılığı olmayan bu saldırı türünde, kötü amaçlı komut dosyasını doğrudan bir HTTP isteğine enjekte edilir. Daha sonra, web sunucusunda yürütülen komut, kullanıcının tarayıcısında da yürütülür.

 

XSS stored nedir?

Dataların depolandığı blog, forum ve benzeri platformlar üzerinden gerçekleştirilir. Güvenlik açığı bulunan web sitesi içerisine, yorum bölümleri gibi kullanıcı girişi olan kısımlara kötü amaçlı komut girmeye olanak sağlar.

Uygulamalı olarak basit bir şekilde göstermeye çalışacağım.

Labımıza dönecek olursak XSS reflected sekmesi içerisine giriyoruz. Site içerisinde XSS zafiyeti var olup olmadığını kontrol etmek için basit bir JavaScript kodu çalıştırıyoruz.

Bu kodu submit ettiğimizde karşımıza browserdan kodda yazdığım gibi hacked mesajı geliyor. Ve anlıyorum ki bu web sunucusunda XSS zafiyeti bulunuyor. Kodu enjekte ettiğimiz yer sürekli çalışan bir web sunucusu olsaydı, scripti yazdığımız linki kopyalayarak gönderdiğimiz kişileri hedef alınabilirdi.  Bu noktada birçok script yazılarak denenebilir.

    < script >alert("hacked") </ script>

XSS storeda geçtiğimiz noktada yine aynı kodu kullanacağım ve yine aynı mesajı alacağım. Sekmeyi ne kadar yenilersem yenileyeyim aynı mesajı alacağım ve sadece bana değil siteye giren bütün kullanıcılara gelecek. Bu noktada XSS reflected ile XSS stored arasındaki önemli farka gelmiş oluyoruz. Bu kısma birçok oltama amaçlı kodları yazılabilir.

Peki XSS’ten nasıl korunurum?

Browser ayarlarına girdikten sonra “JavaScript” anahtar kelimesini aratıyoruz ve site ayarları içerisine giriyoruz.

Site ayarları içerisinde JavaScript opsiyonuna tıklıyoruz.

”JavaScript kullanılmasına izin verme” opsiyonunu seçtiğinizde korunmuş olacaksınız fakat genel kullanımda kullandığınız web sitelerini düzgün görüntüleyemeyebilirsiniz.

 

İkinci seçen olarak güvenmediğiniz yada güvendiğiniz siteleri alta ki kısma ekleyebilirsiniz.

 

 

 

Okuduğunuz için teşekkür ederim. Etik hacker çerçevesinde kullanmanız dileğiyle.