Cross site scripting (XSS), bir bilgisayar güvenlik açığıdır. Saldırgan, HTML kodlarının arasına istemci tabalı kod gömmesiyle, kullanıcının tarayıcısında istediği istemci tabanlı kodu çalıştırabilir.
Teknik Terimler
Cross site scripting`e XSS yerine CSS denmemesinin nedeni Cascading Style Sheets ile karıştırılmasındandır. İlk XSS kısaltması Steve Champeon tarafından 2002 yılında " XSS, Trust, and Barney" dokümanında kullanılmıştır.Arkaplan
Netscape JavaScript dilini tarayıcılarında çalıştırılacağını duyurduğunda, web sunucusu tarafından gönderilen, istemcide çalıştrılabilen kodların güvenlik riskleri yaratabileceğini gerçekleştirmiş oldu. Örneğin bir sayfadan çalıştırılan script, diğer bir sayfaya ulaşabilecekti. Bu yolla kötü niyetli bir web sitesinin, diğer sitelerin bilgilerini çalması üzerine engellediler. Bu nedenle bazı politikalar ortaya çıktı. Aslında bu politika, bunu engellemiyordu, sadece aynı domain üzerinden kullanılmasına izin veriyordu. Bu yol, kötü niyetli internet sitesinin, diğer sitelerden bilgi çalamamasını sağladı. O zamandan buyana, kötü niyetli sitelerden korunmak için küçük erişim kontrolü tedbirleri geliştirildi. Genelde cross site scripting açıkları, saldırganın sistemi deneme-yanılma yaparak bulması ile ortaya çıkar. Açığın bulunması ile saldırgan, başka bir domainden, açığın bulunduğu domain ve sayfanın bilgilerini, session bilgilerini ve diğer obje değerlerini çalmasına olağan sağlar.Açık ve Kullanımı
XSS açığını bulunan form, DOM-tabanlı veya local sayfasına yönlendirilip, hiçbir şey yapılmadan yazdırılıyorsa XSS açığı var demektir. Bu açık serverin REQUEST metoduyla kapatılabilir.Örneğin:
http://www.vulnerable.site/welcome.html?name=JoeAçık bulunanan site name değişkenini okuyup hiçbir filtreleme yapmadan sayfaya yazdırıyorsa, o zaman bu değerde istenilen kod çalıştırılabilir.
http://www.vulnerable.site/welcome.html?name=Bu şekilde kurbanda istemci tabanlı JavaScript kodları çalıştırılabilinir.
Bu açık bulunan kişiye saldırı şu şekilde gerçekleşebilir:
- Kurbana gönderilen linki tıklamasını sağlayacak mail veya diğer araçlardan mesaj atılır.
- Kurban linke tıklar.
- Çalıştırılan istemci tabanlı JavaScript kodları sayesinde, kötü niyetli site açılır ve geldiği sayfadaki bilgiler, server tarafından çalınır.
- Script kurbanı aldatarak geri döner.
- Saldırgan kurbanın session bilgilerini çalmıştır.
Linkler
- CGI Security XSS Hakkında Sıkça Sorulan Sorular
- CERT® Advisory CA-2000-02: Malicious HTML Tags Embedded in Client Web Requests
- Apache Yazılım Vakfı Cross Site Scripting Bilgileri
- [http://webmonkey.wired.com/webmonkey/00/18/index3a.html Webmonkey - XSS, Trust, and Barney