Bu lab'da uygulamanın arama fonksiyonunu incelerken reflected XSS zafiyeti olduğunu fark ettim. Arama kutusuna girilen input'un herhangi bir filtreleme ya da encode işlemine tabi tutulmadan doğrudan HTML içerisine yansıtıldığını gördüm.

None

Normal bir değer girip test ettiğimde, input'un response içinde birebir render edildiğini doğruladım. Bu da HTML context içerisinde olduğumuzu ve doğrudan tag enjeksiyonu yapabileceğimizi gösteriyor.

Ardından aşağıdaki payload ile deneme yaptım:

None

<script>alert(1)</script>

Payload'ı arama alanına girip sorguladığımda, script başarılı şekilde çalıştı ve alert popup'ı tetiklendi. Herhangi bir filtreleme ya da koruma mekanizması olmadığı için ekstra bir bypass tekniğine gerek kalmadı.

None

Zafiyetin temel sebebi, kullanıcı girdisinin sanitize edilmemesi ve output encoding uygulanmamasıdır. Bu durum, saldırganın zararlı JavaScript kodlarını doğrudan kullanıcıya yansıtmasına ve çalıştırmasına imkan tanır.