XSS Example 4 (W4P)

Merhabalar, bu yazıdaWeb for Pentester’te bulunan XSS Example 4 zafiyet tespiti ve çözümünden bahsedeceğiz.

XSS Example 3’ün incelemesine bu linkten ulaşabilirsiniz: http://www.halilbalim.com/xss-example-3-w4p/

Sanal makinemize ise bu linkten ulaşabilirsiniz: https://www.vulnhub.com/entry/pentester-lab-web-for-pentester,71/

XSS Example 4’te genel incelememiz yine aynı sonucu veriyor. Adres çubuğundaki name parametresi değişken kabul ediyor.

XSS Example 4 Çözüm 1

Bu örnekte bu zamana kadar denediğimiz tüm script örneklerini denediğinizde her birinin error verdiğini fark edeceksiniz. Demek ki script etiketini olduğu gibi engelliyor. Mesela, herhangi başka bir kod üzerinde alert kullanabilir miyiz? Bir de img etiketini deneyerek şöyle bir şey yazalım: <img src=”javascript:alert(‘deneme’)”</img>

Aşağıdaki resimde de görebileceğiniz üzere yine error verdi. Aslında bu error bile bize bir ipucu veriyor. Çünkü javascript’te tanımlı onerror fonksiyonu bulunmakta.

Bunun için yine img kullanarak onerror fonksiyonu ile alert üretmeye çalışacağız. Bunun için yazacağımız script ise şu şekilde: <img src=onerror=”(alert(‘you can run but never hide’)”</img>

Yukarıda kalın olarak yazılmış kod yine error verdi, çünkü Hello yazısından sonra eklemiş olduğu imajı sürükleyip boş bir sekmeye bıraktığımızda görüyoruz ki yazdığımızı adres olarak algılamış bunu atlatmak için, adres kısmına ile başlıyoruz ve sonrasında boşluk bırakarak geri kalanı ekliyoruz ki imaj yüklemesinde error oluşsun ve onerror fonksiyonu çalışsın. Yani, <img src= / onerror=”(alert(‘you can run but never hide’)”</img>

XSS Example 4 Çözüm 2

Bu çözüm çok daha basit ve etkili bir çözüm. Bazılarınızın da bildiği üzere, PHP’de alert bir tek script etiketi ile üretilmiyor. Yukarıda img etiketi kullandık ama alert‘i direkt html’in body partının yüklenmesi ile çalışacak şekilde kurabilirdik. Yani: <body onload=alert(“you can run but never hide”);>

Bu örnekte de size basit bir dille çözümleri anlatmaya çalıştım. Siber Not Defterim sizin de işinize yaradıysa ne mutlu 🙂

Bir diğer örnekte görüşmek üzere.

1 Comment

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir