LAB 02 - WEB SECURITY

Cross Site Scripting (XSS)

Kullanici girdisinin HTML/JS olarak calistigi noktayi bul ve output encoding ile kapat.

Beginner Reflected XSS Output Encoding
Ana Sayfaya Don

XSS Demo

Ayni inputu iki farkli endpointe gonder. Vulnerable mod ham HTML render eder, secure mod encoded yazar.

Test Payloadlari <script>alert('xss')</script>, <img src=x onerror=alert(1)>, <svg onload=alert(1)>

Ogrenme Hedefleri

  • Reflected XSS'in nasil tetiklendigini gormek
  • Raw render ile encoded render farkini anlamak
  • Burp Repeater ile payloadlari tekrar etmek
  • Output encoding ile fix dogrulamak

Bu Hata Neden Olustu?

Uygulama, kullanicidan gelen veriyi guvenilir kabul edip HTML olarak render ettiginde tarayici bu veriyi kod gibi yorumlar.

  • Untrusted input dogrudan output'a yazildi.
  • Vulnerable modda Html.Raw(...) kullanildi.
  • Bu nedenle payload JavaScript olarak calisti.
  • Reflected XSS olustu (istek-cevap icinde anlik yansitma).

Nasil Cozuldu?

Cozum, kullanici girdisini kod gibi degil metin gibi ele almaktir. Bunu output encoding ile sagladik.

  1. Html.Raw kullanimini secure akistan kaldirdik.
  2. Razor'un varsayilan escaping davranisini kullandik ().
  3. Payload retestinde script'in calismadigini dogruladik.
  4. Ek savunma olarak CSP ve sanitize katmanlari onerildi.

Adim Adim Yol Haritasi

01 Vulnerable render noktasi olustur
02 Payload ile XSS'i tetikle
03 Kök nedeni acikla
04 Output encoding ile duzelt
05 Burp ile tekrar test et
06 CSP ve sanitize iyilestirmelerini not et