Hedef Sitede XSS Açığı Tespiti – XSSPWN
Deprecated: The PSR-0 `Requests_...` class names in the Requests library are deprecated. Switch to the PSR-4 `WpOrg\Requests\...` class names at your earliest convenience. in /home/u918363033/domains/berkeunal.com.tr/public_html/wp-includes/class-requests.php on line 24

Kısaca XSS Nedir ?
XSS Açığı Tespiti konusuna değinmeden önce XSS açığından özetle bahsedelim. Cross-Site Scripting (XSS), yazılımcının kullanıcıdan aldığı girdileri gerekli HTML ve JavaScript filtrelerinden geçirmediği takdirde oluşan bir zafiyettir. Girdiler gerekli filtrelerden geçmediği taktirde, eğer kullanıcı aynı zamanda bir saldırgan ise; diğer kullanıcılara veya doğrudan sisteme zarar verebilecek zararlı kodları çalıştırabilir. HTML, CSS ve JavaScript tarayıcı tarafından yorumlanan diller olduğundan dolayı, yazılan zararlı kod doğrudan diğer kullanıcıları da etkileyebiliyor.
XSS temel olarak 3 farklı dalda incelenir:
1- Reflected XSS
2- DOM-Based XSS
3- Stored XSS
Hedef URL’de XSS Açığı Tespiti Nasıl Yapılır

XSS açığı tespiti yapmak için kullanacağımız araç XSSPWN aracı.Aşağıda verdiğim komut ile aracı indirebilirsiniz.
git clone https://github.com/BerkeUnal/XSSPWN.git

GitHub’da İncelemek İçin : https://github.com/BerkeUnal/XSSPWN

cd XSSPWN komutu ile indirdiğimiz XSSPWN klasörüne geçiş yapıyoruz. ls komutu ile içersindeki dosya ve klasörleri listeliyoruz.

python install.py
Komutu ile XSSPWN aracının kurulumunu gerçekleştiriyoruz.

python xsspwn.py komutu ile XSSPWN aracını çalıştırıyoruz ve karşımıza yukarıdaki gibi bir ekran geliyor.Y diyerek enter’a basıyoruz ve XSSPWN aracının kullanım koşullarını kabul ediyoruz.

python xsspwn.py -u http://site.com/login.php?msg=INJECT -l payload.txt
Komutu ile XSS açığı tespiti işlemini başlatıyoruz.Bu komutu biraz daha detaylı anlatmak istiyorum kafanıza doğru otursun.
1- Öncelikle python xsspwn.py komutu ile XSSPWN aracını çalıştırdık.
2- -u parametresi ile hedef sitemizi belirttik.Burada dikkat etmemiz gereken şey siteadresi.com şeklinde bir bilgi verip öylece bırakmıyoruz.XSS payloadlarını nereye denemesini istiyorsak o URL’yi vermemiz gerekiyor.Yani örnek verecek olursak. -u parametresinden sonra https://www.hedefsite.com yazarsanız program çalışmayacaktır. Çünkü payloadları nereye ekleyeceğini göstermedik ve sadece alan adını yazarak XSS açığı tespiti malesef yaptıramıyoruz.Bunun için URL’de payloadlar nereye eklenecek ise yukarıdaki görselde de gösterdiğim gibi ilgili yere INJECT kelimesini ekliyoruz.Örnek verecek olursak hedef url’ler şu şekilde olmalıdır.
http://www.hedef.com/item.php?id=INJECT
http://ww.hedef.net/newsdetail.php?id=INJECT http://www.hedef.com/product.php?id=INJECT http://www.hedef.com/catalog/item.php?id=INJECT http://www.hedef.com/news.php?id=INJECT
http://hedef.com/login.php?msg=INJECT
http://www.hedef.com/html/login/login.php?msg=INJECT
http://hedef.com/maintenance.php?msg=INJECT
Yukarıda da anlaşılacağı gibi http://hedefsite.com ya da http://hedefsite.com/INJECT tarzı bir kullanım şekli yok.
3- -l parametresi ile hedef sitemizde denemesi için bir payload listesi belirtiyoruz. XSSPWN aracı ile birlikte varsayılan olarak bir payload.txt dosyası geliyor fakat siz bunları daha da arttırmak isterseniz internetten daha kapsamlı XSS Payload Listesi bulabilirsiniz.
python xsspwn.py -u http://site.com/login.php?msg=INJECT -l payload.txt

Komutunu çalıştırdıktan sonra tekrardan programın kullanım koşullarını kabul ediyoruz yani Y diyerek devam ediyoruz.

Kullanım koşullarını kabul ettikten sonra hedef siteye yönelik XSS açığı tespiti işemi başlamış oluyor. Her bir işlem için rastgele bir User Agent kullanarak hedef sitemizin bizi engellemesine engel olmaya çalışıyor.
Tarama işlemi bittiğinde;
“Do you want to print vulnerable links tested: [Y/n]:” sorusuna Y diyerek devam ediyoruz ve karşımıza XSS açığı bulunan url’ler listeleniyor.
Diğer güvenlik açığı türleri ve benzer uygulamalarla güvenlik açığı tespiti yapmak için Web Hacking kategorisine göz atmayı unutmayın.