Low-Level

XSS (DOM)

Səhifəyə nəzər salaq:

None

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

None

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

None

Məsələn:

None

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

None

XSS (Reflected)

Belə bir səhifə ilə qarşılaşırıq:

None

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

None

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

None

XSS (Stored)

Belə bir səhifə ilə qarşılaşırıq:

None

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

None

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

None
None

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.

None
None

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`)>"

None

XSS (Reflected)

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

None

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.

None

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

None

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>"

None

XSS (Reflected)

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

None

XSS (Stored)

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

None

Impossible-Level

Əzab.

Suallarınız olsa, LinkedIn hesabım: https://www.linkedin.com/in/mehdiyevfarid

Təşəkkürlər!