Low-Level
XSS (DOM)
Səhifəyə nəzər salaq:

Məsələn, "English" dilini seçərək "Select" düyməsinə basdıqda URL-in dəyişdiyini müşayiət edirik:

URL ilə yeni bir şey əlavə etsək, aşağıdakı kimi teqin içinə oturacaq:

Məsələn:

Onda URL-ə sadə bir skript yazmaq bəs edir: "<script> alert(`joke`) </script>"

XSS (Reflected)
Belə bir səhifə ilə qarşılaşırıq:

Nümunə ad daxil edəndə həmin ad ekranda göstərilir:

Sadə şəkildə, yenə də, "<script> alert(`joke`) </script>" yazmaq burada da işləyəcək.

XSS (Stored)
Belə bir səhifə ilə qarşılaşırıq:

Nümunə məlumatlar daxil edib "Sign Guestbook" etdikdə yazdıqlarımız ekranda göstərilir:

Yenə də bu, kifayət olacaqdır:


CSP Bypass
Burada isə "CSP (Content Security Policy)"i "bypass" etməyə çalışırıq. Nümunə kimi verilən linklərdən "alert.js" olanını icra etmək kifayət edir.


Medium-Level
XSS (DOM)
Burada "<select>" teqinin içərisindəki skript teqləri bloklanır və "encode" olunur. Ona görə də, ilk olaraq, o teqdən çıxmaq, sonra kodumuzu icra etmək lazımdır: "</select><img src=x onerror=alert(`joke`)>"

XSS (Reflected)
Burada da "skript" teqləri bloklanır, amma "img" ilə işimizi görə bilərik: "<img src=x onerror=alert(`joke`)>"

XSS (Stored)
Burada isə "Message" hissəsi sanitariya olunsa da, "Name" hissəsi olunmayıb. Belə ki, əvvəlcə "Inspect Element" vasitəsilə "Name" hissəsinin uzunluğunu dəyişirik.

Sonra isə həmin hissəyə bunu yazmaq kifayətdir: "<img src=x onerror=alert(`joke`)>"

High-Level
XSS (DOM)
Gəlin JavaScript koduna nəzər salaq:
var lang = document.location.href.substring(document.location.href.indexOf("default=")+8);Belə ki, "lang" dəyişəninə "default=" hissəsindən sonrakı hər şey mənimsədilir. Dili təyin etmə hissəsində "whitelisting" tətbiq olunduğundan dörd dildən başqa heç bir şey daxil edə bilmərik.
Ancaq URL hash-lərdən istifadə edə bilərik (# simvolu ilə): "French#<script>alert(`joke`)</script>"

XSS (Reflected)
"Medium" hissəsindəki eyni kod burada da işləyir: "<img src=x onerror=alert(`joke`)>"

XSS (Stored)
"Medium" hissəsindəki eyni taktika və kod burada da işləyir: "<img src=x onerror=alert(`joke`)>"

Impossible-Level
Əzab.
Suallarınız olsa, LinkedIn hesabım: https://www.linkedin.com/in/mehdiyevfarid
Təşəkkürlər!