/  4
 
XSS saldırıları, tarayıcıdaki çeşitli kod çeviricilerine ve çalıştırıcılarına kod ilavesinedayanır. Bu saldırılar; HTML, Javascript, VBScript, ActiveX, Flash ve diğer programlamadilleri kullanılarak gerçekleştirilebilir. Hesap çalma, kullanıcı ayarlarında değişiklik yapabilme, cookie hırsızlığı gibi şeyler bu yöntemle mümkün olabilmektedir. Bazıdurumlarda Cross Site Scripting açıkları, diğer web güvenlik açıklarının taranması ve serviskullanımını engelleme gibi başka fonksiyonları da gerçekleştirebilir.Cross Site Scripting, belirli bir web sitesindeki müşterilerin kişisel gizliliklerinin hedef alındığı ve müşterilerin bilgilerinin çalındığı veya çeşitli şekilde manipüle edildiği zamanortaya çıkan güvenlik ihlaline dayanan bir saldırı yöntemidir. “Saldırgan – web site” veya“saldırgan – kurban” ilişkisi gibi iki aşamalı olan birçok web saldırı yönteminden farklı olarak XSS açıkları; 3 bileşenle gerçekleştirilir: saldırgan, kurban ve web site. XSS saldırılarınınamacı, kurban müşterinin cookielerini veya diğer önemli bilgilerini çalmaktır. Böylece aynıkurban adına her türlü işlemi gerçekleştirebilir.Çevrimiçi mesajlaşma boardları, web logları, ziyaretçi defteri ve forumlar gibimesajların kalıcı olarak depolandığı yerler de, Cross Site Scripting açığınıkolaylaştırmaktadır. Bu durumlarda saldırgan, foruma, görünüşte tamamen zararsız olan bir siteye ait; fakat kullanıcıları hedef alacak şekilde şifrelenmiş bir script içeren herhangi link atabilir. Saldırganlar; zararlı scripti gizleyecek ve bazı durumlarda da <Script> tagının alenikullanımını önleyecek çeşitli şifreleme yöntemlerine sahiptirler. XSS atakları genelliklezararlı javascript kodlarının kullanımı ile gerçekleştirilse de çalıştırılabilir herhangi bir içerikle de gerçekleştirilebilir. Her ne kadar bir çok tip karmaşık saldırı çeşidi olsa da XSSaçıklarını tespit etmenin belli yöntemleri vardır.3 XSS tipine göz atalım: Depolanmış(Gizli), Yansıtılmış(Aktive olmuş) ve DOM-TabanlıDepolanmış XSS açığı,bu saldırı türünün en güçörneğidir. Depolanmış XSSsaldırısı; herhangi bir kullanıcı tarafından bir web uygulamasına ilk olarak bilgi girildiktensonra bu bilginin veritabanı, dosya sistemi veya diğer bölümlerde yani genel olarak server üzerinde depolanmasının ardından, bu bilginin şifrelenmembir şekilde kullanıcılaragösterilmesi sonucu açığa çıkar. Gerçek yaşamdan örnek verirsek, Ekim 2005′te MySpace’teortaya çıkan Samy solucanı, XSS açığını kullanıyordu.Bu açıklar, XSS açığının en önemli tipini oluşturur. Çünkü saldırgan, scripti bir kereyemahsus enjekte edebilir. Sosyal mühendisliği yardımıyla da birçok kullanıcı bu olaydanetkilenebilir veya web uygulaması XSS virüsüne bile maruz kalabilir.Örnek:Elimizde, diğer kullanıcılara mesaj atmamızı sağlayan bir site olsun ve biz mesajatmak yerine bir script enjekte edelim:
 
Şimdi server, bu bilgiyi depolayacak ve karşı taraftaki kullanıcı bu linke tıklayınca fake mesajgörünecek. Kurbanımızın tarayıcısı bizim scriptimizi aşağıdaki gibi çalıştıracak:Yansıtılmış XSS açıklarıise çok daha fazla bilinen bir tiptir. Önceden veri girilmişolan web istemcisinin, server-side(server aracılı) scriptlerle kullanılması sonucu ortaya çıkar.Eğer, kullanıcı tarafından girilen fakat onaylanmamış bilgiler; HTML kodlamasız olarak sayfada görülüyorsa; bu, client-side(istemci aracılı örn: tarayıcı kullanarak) kodların dinamik 
 
sayfalara eklenmesine izin verecektir. Bunun klasik örneği sitelerin arama bölümleri: Eğer  bazı özel HTML karakterlerini de içeren karakter dizisini aratırsak, karşımıza neyi aradığımızıgösteren bir sonuç çıkacaktır. Eğer tüm arama kriterlerimiz veya karakterlerimiz; HTMLkodlama ile görüntülenmezse, XSS açığı vardır diyebiliriz.İlk bakışta, eğer kullanıcılar kendi sayfalarına sadece kod ekleyebiliyorlarsa, bu ciddi bir problem değildir diye düşünebiliriz. Fakat, basit bir sosyal mühendislik metoduylasaldırgan kurbana bir link gönderir. Bu link sonuç sayfasına kodlar enjekte edilmiş zararlı bir linktir ve saldırganın sayfadaki tüm içeriğe erişebilmesine olanak sağlar. Bu durumdakullanılması gereken sosyal mühendislik metodlarının genel gereksinimleri sebebiyle, bir çok  programcı bu açıklara pek önem vermemiştir. Bu önemsenmeyen açıklardan biri de XSS’dir ve XSS’nin önemiyle ilgili hep anlaşmazlıklar olmuştur. XSS açığının önemini göstermek içinen basit yol, DoS ataklarıdır. Bazı durumlarda aşağıdaki yöntem kullanılarak server üzerindeDoS atağı gerçekleştirilebilir.article.php?title=<meta%20http-equiv="refresh"%20content="0;">Bu kod, hedef sayfa üzerinde her 0.3 saniyede bir sayfanın yenilenmesi isteğinigönderecektir. Bu sınırsız yenilenme isteklerinin meydana getirdiği flood sebebiyle, websayfasının ve veri tabaserverının işlemesi duracaktır. Daha fazla tarayıcı oturumununolması bu saldırının şiddetini artıracaktır.DOM-Tabanlı XSS problemi
 
ise, bir sayfanın client-side(istemci tabanlı örn: tarayıcıkullanarak) scriptinde kendiliğinden olur. Elimizdeki bir javascript, herhangi bir bağlantı(link)istek parametresine(Örn: rss feed) erişirse ve kendi sayfasına bazı HTML kodları yazmasınısağlamak için bu bilgileri kullanırsa; bu bilgiler HTML kullanılarak kodlanmaz. Öncedenyazılmış olan bu veri ve buna ek olarak bazı istemci tabanlı scriptler de içerebilen HTMLkodu olarak tarayıcı tarafından yeniden yorumlanır. Bu açık türü, Yansıtılmış XSS açığına çok  benzeyebilir; fakat bir önemli durum hariç:Örneğin, eğer açığı olan bir siteye ait link içeren zararlı bir siteye sahip olan saldırgan,script enjekte edebilir ve bu script kullanıcının tarayıcısında çalıştırılabilir. Bu olay, XSSexploitleriyle normalde zaten bypassa uğrayan çapraz domain sınırlaması da dahil, tümistemci tabanlı kodları bypass edecektir.Bu enjeksiyonların birçok metodu vardır. Basit sitelerdeki kullanımının dışında bir organizasyonu nasıl etkilediğini gösteren bir örnek verecek olursak, BlackHat Amerika 2006da Jeremiah Grossman tarafından gösterilen olayı söyleyebiliriz. Bu ispatlama yapılırkençeşitli bloglara, gazetelere veya web sayfaların yorum kısmına depolanmış XSS scripti içerenkodlar gönderilmiştir ve bu zararlı kodların bulunduğu sayfaları ziyaret eden kullanıcılarınağları belirli açıklara karşı taranabilmiş ve loglanmıştır.Black Box testi ve örnek:XSS açığını test etmenin yolu; bir uygulamanın veya web serverın, herhangi bir tarayıtarafından çalıştırılabilen basit scriptler içeren isteklere karşı vereceği cevabıdoğrulamakla olur. Örneğin Sambar Server v5.3, XSS açığının bilindiği çok popüler ücretsiz bir web serverdır. Servera aşağıdaki gibi bir istek gönderirsek, tarayıcı tarafından çalıştırılan bir server cevabı alırız.http://server/cgi-bin/testcgi.exe?<SCRIPT>alert(“Cookie”+document.cookie)</SCRIPT>

Share & Embed

More from this user

Recent Readcasters

Add a Comment

Characters: ...