XSS Nedir?
XSS (Cross Site Scripting) script kodları üzerinden (genelde javascript) bir web sayfasına saldırı yapılmasıdır.XSS çoğunlukla tarayıcıda saklanan bilgiler olan cookielere saldırı amacı ile kullanılmaktadır.
Hızlıca konuya geçelim iyi seyirler iyi okumalar
EXAMPLE 1
Klasik olarak bir kod yazalım
Payload
<script>alert("TurkHacks")</script>
görmüş oldugunuz gibi çalıştı
ama bukadar degil Urlde soru işaretinden sonra bir name yani GET parametresi var
Bakalım example1.php dosyasının içine
$_GET[“name”] . parametresi aldığı değeri ekrana çıktı olarak veriyor
Yani hiçbir filtreleme yok girilen değer direk ekrana çıktı olarak yazılıyo
EXAMPLE 2
Burda aynı şekilde denedigimizde
bir filtreleme var ama ney sayfanın koduna gidelim
Evet bir filtlerele var ama script küçük olarak yazılmış şimdi farklı şekilde payloadımızı oluşturalım
Payload
<SCRİPT>alert(0)</SCRİPT><ScrİPT>alert(0);</SCript>
EXAMPLE 3
Diğer örneklerde olduğu gibi buda önceki payloadlarımızı kabul etmicek oyuzden bi kaynak koduna bakalım
PHP kodu <script> ve </script> etiketlerini temizleyerek koruma sağlamaya çalışıyor ama yetersiz ama bunu ikinci defa yapmıyo.
örnek vericek olursam otobüse bindiniz siz kart bastınız ama arkanızdaki kişi basmadan geçti.
Payload
<scr<script>ipt>alert("0");</scr</script>ipt>
EXAMPLE 4
Kaynak koduna bakalım.
İçerisinde “script” geçen herhangi bir kod görüldüğü zaman error verecek
Diğer javascript kodlarını çalıştırmayı deniyelim.
Payload
<svg onload=alert("TurkHacks")>
EXAMPLE 5
Kaynak koduna bakalım hemen.
Bu seferde script kodlarının çalışıp alert kodlarını filtrelediğini görüyoruz.
Alert gibi prompt kodumuz var bide onu deneyelim
Alert():Kullanıcıya bilgi verir.
Prompt():Kullanıcıdan bilgi alır.
Payload
<svg onload= prompt("TurkHacks")[IMG width="668px"]https://r.resimlink.com/C-fcO0k.png[/IMG]EXAMPLE 6
Şimdi ise hiçbir hata ve buton oluşmuyor sayfanın kaynak koduna bakalım.
yazdığımız kodları bir değer olarak kaydediyor.
şimdi ise yapıcağımız şey çok basit script taglarını kapatıcaz
Payload
</script><script>alert("TurkHacks")</script>
EXAMPLE 7
Önceki payloadlarımızı kullandıgımız'da bir hata almıyoruz
Sayfanın kaynak koduna bakalım
Değişkeni atarken tek tırnak kullanmış
Diğer örnekte olduğu gibi tırnağı kapatmamız lazım
Payload
';alert(1);';
EXAMPLE 8
Sayfanın Kaynak kodlarına bakalım
htmlentities fonksiyonu kullanılmış yani encode ediliyor.
form tag ini kapatarak kendi script kodumuzu url üzerinden yazabiliriz.
Payload
/"><script>alert(1)</script>EXAMPLE 9
Kodu incelediğimizde location hash kullanıldığını görüyoruz yani url imizde # den sonra yazdıklarımız sadece browser tarafında çalışacaktır sunucu tarafına hiç gitmeyecektir, bu xss zafiyetinin türü DOM XSS dir.
Payload
<script>alert(1)</script>url encode olarak basıldığından bu zafiyet çözülmüyor, eski bir tarayıcı kullandığımızda çözülecektir.





