bende tam bunun dkümanını yazıyordum yeminle benim siteye gelmişlerde aq lar bende bilgi topladım neyse atalım çpe :) T. C Anayasası Madde 26 : Herkes, düşünce ve kanaatlerini sz, yazı, resim veya başka yollarla tek başına veya toplu olarak açıklama ve yayma hakkına sahiptir. Bu hürriyet resmi makamların müdahalesi olmaksızın haber veya fikir almak ya da vermek serbestliğini de kapsar. Bu fıkra hükmü, radyo, televizyon, sinema veya benzeri yollarla yapılan yayımların izin sistemine bağlanmasına engel değildir.

Giriş Günümüzdeki web siteler; kullanıcıların daha iyi vakit geçirebilmeleri için birçok dinamik içeriğe sahipler. Kullanıcıların ihtiyaçlarına ve ayarlarına gre farklı işlemler yapan web uygulamaları yoluyla işte bu dinamik içerik oluşur. Statik web sitelerine nazaran dinamik web siteleri "Cross Site Scripting" adı verilen bir tehlikeyle karşı karşıyadırlar. İşte bu dkümanımız da yeni gelişen bu tehlikenin daha iyi anlaşılmasını sağlamak, bu açığın tespiti ve koruması hakkında bir rehber olması amacıyla hazırlandı. Cross Site Scripting Nedir? Cross Site Scripting , web uygulaması kullanıcıdan zararlı bir veri topladığı zaman meydana gelir. Bu veriler genellikle, zararlı içerikler barındıran hyper linkler sayesinde toplanır. Kullanıcı; herhangi bir web sitesinde, anlık mesajlaşma sistemlerinde veya bir e-posta mesajında bu linke tıklayacaktır. Genellikle saldırgan bu zararlı kodun bir kısmını HEX veya diğer şifreleme teknikleriyle şifreleyecektir. Bylece linke tıkladıktan sonra yapılacak istek karşısında kurban daha az şüphelenecektir. Web uygulaması tarafından veriler toplanınca, zararlı verileri içeren bir sayfa kullanıcıya gsterilecektir. Bir çok ziyaretçi defteri ve forum programları, kullanıcılarına site içindeki mesajlarında html ve javascript gmmelerine izin vermiştir. Şimdi rneğin ben siteye "john" olarak girmiş olayım. "joe" denen birisi de foruma zararlı javascript kodları içeren bir mesaj atmış olsun ve ben bunu okuyayım. İşte burada "joe" nun benim sessionlarımı çalması mümkün olabilir. Sadece o mesajı okumayla bile... İleriki detaylarda da "cookie çalma" için buna benzer hangi tür saldırıların işe yaradığını greceğiz. XSS ve CSS Ne Demektir? Bir çok kişi Cross Site Scripting'e karşılık CSS demektedirler. Ama bu, Cascading Style Sheets ile Cross Site Scripting arasında karışıklığına yol açmıştır. Bazı güvenlik uzmanları Cross Site Scripting için XSS demeyi uygun grmektedirler. Eğer birinden "XSS açığı buldum." şeklinde bir şey duyarsanız, kesinlikle Cross Site Scripting'ten bahsetmektedir. Cross Site Scripting Tehlikeleri Nedir? Saldırganlar genellikle, kurbanlarından verileri toplamak için güvenlik zafiyeti bulunan bir web uygulamasına; JavaScript, VBScript, ActiveX, HTML, veya Flash yerleştirirler. Hesap hırsızlığı, kullanıcı ayarlarının değiştirilmesi, cookie çalınması gibi her şey bylece mümkün olabilmektedir. XSS atakları için yeni kullanımlar her geçen gün keşfedilmektedir. Aşağıdaki linki verilen, Brett Moore tarafından yazılan makalede grebileceğiniz üzere, eğer bir kullanıcı, forum gibi herhangi bir mesaj boardunda sadece bir mesaj okusa bile, onun hosta karşı yapılan otomatik-saldırıya yani DoS'a dnüşebileceği grülmektedir. http://archives.neohapsis.com/archives/vuln-dev/2002-q1/0311.html Cross Site Scripting Saldırılarına rnekler Neler Olabilir? Birçok XSS açığı olan popüler PHP programlarından birisi PHPnuke'dir. PHPnuke, popülaritesi sebebiyle birçok saldırgan tarafından XSS açığı bulmak için hedef alınmaktadır. Aşağıda, PHPnuke için keşfedilen ve açığa çıkarılan XSS açıklarına karşı birkaç link greceksiniz. http://www.cgisecurity.com/archive/php/phpNuke_cross_site_scripting. txt http://www.cgisecurity.com/archive/php/phpNuke_CSS_5_holes. txt http://www.cgisecurity.com/archive/php/phpNuke_2_more_CSS_holes. txt XSS ile Cookie Hırsızlığı Nasıl Olmaktadır? Şunu aklınızda bulundurun. Aşağıdakiler sadece bir saldırganın ynteminin basit bir rneğidir. rneğimizde, "değişken" adlı bir "a. php" dosyasına normal bir web isteği gndererek cross site scripting açığını exploit edeceğiz. Var olan XSS açıklarının en genel tipi budur. Aşama 1: Hedefleme Bir web sitesi üzerindeki web uygulamasında XSS açığı bulduktan sonra, sitenin cookie kullanıp kullanmadığını kontrol edin. Eğer web sitenin herhangi bir blümü cookieleri kullanıyorsa, kullanıcılardan bu cookieleri çalabilmek mümkün hale gelir. Aşama 2: Test Etme XSS açıkları, exploitlenmelerine bağlı olarak farklılık gsterir. Veri çıkışını garanti hale getirmek için bazı testlere ihtiyacımız olacak. Script içine kodlar ekleyerek, onun çıkışı değiştirilecektir ve sayfa bozuk gibi grülecektir. Ardından sitenin güvenlik zafiyeti bulunan blgesini hedef alacak şekilde, bir URL içine bazı Javascript kodlarını eklemeye ihtiyacınız olacak. Aşağıda XSS açıklarının tespiti için kullanılan birkaç link var. Bu linkler, üzerine tıklanıldığı takdirde kullanıcıların cookielerini www.cgisecurity.com/cgi-bin/cookie. cgi adresine gnderecek ve bunu gsterecektir. Eğer cookieleri gsteren bir sayfa grürseniz ondan sonrasında kullanıcının hesabına ait sessionları çalmanız mümkün olabilecektir. Javascript rnekleriyle Cookie Hırsızlığı ASCII Kullanımı:Hex Kullanımı:İşte bunlar, ileride kullanacağımız ktü niyetli javascript rnekleri. Bu rnekler, kullanıcıların cookielerini toplamakta ve ardından cookieler ile birlikte cgisecurity.com'a istek gndermektedir. Cgisecurity.com daki scriptimiz her isteği ve her cookie'yi loglamaktadır. Basit bir ifade ile aşağıdaki gibi olmaktadır: Cookiemiz = user=zeno; Scriptimiz = www.cgisecurity.com/cgi-bin/cookie. cgi Sitemize aşağıdakine benzer şekilde bir istek gndermektedir. GET /cgi-bin/cookie. cgi?user=zeno;%20id=021 (Not: %20, Hex şifrelemesinde bir boşluğu ifade etmektedir.) Bu, kullanıcıların cookielerini çalmada son derece ilkel ama bir o kadar da etkili bir yntemdir. Aşama 3: XSS Çalıştırma Oluşturduğunuz URL'yi dağıtın veya e-posta kullanın veya bu URL'nin çalıştırılması için diğer yardımcı programları kullanın. Yalnız şuna emin olun: Kullanıcılara gnderdiğiniz URL ler en azından HEX ile şifrelenmiş olsun. rneğimizde; kullanıcıları sadece cookie. cgi'ye ynlendireceğiz. Daha fazla zamanı olan bir saldırgan, birkaç ynlendirme ve XSS karışımı gibi bir şey yaparak kullanıcıların cookielerini çalabilirdi ve cookielerinin çalındığına dair herhangi bir ibarenin olmadığı bir siteye geri dndürebilirlerdi. Bazı e-posta programları; açılış mesajıyla beraber veya eklenmiş ayrı bir dosya olarak javascript o mesajın içinde bulunuyorsa o javascripti çalıştırabilir. Hotmail gibi bir çok site eklenmiş dosyaların içerisinde Javascript'e izin verir ama cookie hırsızlığını nlemek için de zel filtreleme yntemlerine sahiptirler. Aşama 4: Bu Veri İle Yapılacaklar ncelikle XSS açığını değerlendirebilmek için kurban bir kullanıcınız olacak. Veri ondan toplanacak ve CGI scriptinize gnderilecek. Şimdi cookielere sahibiz. Websleuth gibi bir takım araçları kullanarak kullanıcının hesabını çalabilip çalamayacağımıza bakacağız. Bu makale yalnızca sıkça sorulan sorulara cevap verilmiş bir yazıdır. Cookielerin çalınmasına ve onları nasıl modifiye edeceğimize dair detaylara yer verilmemiştir. Web Site Sahibi Olarak Kendimi Korumak İçin Ne Yapmalıyım? Cevap basit. Kullanıcı girdilerine hiçbir zaman izin vermeyin ve meta karakterleri her zaman filtreleyin. Bu, XSS saldırılarının büyük çoğunluğunu ortadan kaldırmanıza yetecektir. Script çıktısına <and> karakterinin gelmesiyle onu &lt ve &gt karakterlerine çevirmek de nerilen yntemlerden biridir. Unutmayın ki XSS açıkları, işinize zarar verebilir ve size pahalıya patlayabilir. Saldırganlar genellikle bu zafiyeti açığa vururlar ve sizin kurumunuzun güvenlik ve gizliliğine karşı genel güvenilirliği ve kullanıcıların itimadını yıpratırlar. <and> karakterini filtrelemek tüm XSS saldırılarını çzmenize yetmeyecektir. Aynı zamanda karakterini &#40; ve &#41;, &#34;, &#39, karakterlerine çevirmek ve aynı zamanda # karakterini &#35 ve & karakterini &#38 karakterine çevirmek de nerilen yntemler arasındadır. Kullanıcı Olarak Kendimi Korumak İçin Ne Yapmalıyım? Kullanıcı olarak kendinizi korumanın en kolay yolu, dilediğiniz sayfayı grmek istediğinizde oraya, ana sayfanın menülerinden ulaşarak gitmenizdir. Bazen XSS açığı; e-posta mesajını, e-posta eklerini açtığınız zaman; ziyaretçi defterini veya bulletin board mesajlarını okuduğunuz zaman otomatik olarak çalıştırılır. Eğer bilmediğiniz bir kişi tarafından genel boardlara mesaj atıldıysa veya tanımadığınız bir kişiden e-posta aldıysanız bunları okuyacağınız zaman dikkatli olun. Alınabilecek en iyi nlemlerden bir tanesi, tarayıcınızın ayarlarından Javascript'i kapatmak olacaktır. Internet Explorer kullanıyorsanız, güvenlik ayarlarınızı yüksek seviyeye çıkarın. Bu, cookie çalınmasına karşı sizi koruyacaktır. XSS Açığının Popülaritesi Nasıldır? Cross Site Scripting açığı, saldırganların bir çok web sitesinde basit açıklar bulmasıyla popüler hale gelmektedir. FBI. gov, CNN.com, Time.com, Ebay, Yahoo, Apple Computer, Microsoft, Zdnet, Wired ve Newbytes; geçmişte XSS açıklarının çeşitli şekillerine sahip olmuş olan sitelerdi. Her ay aşağı yukarı 10-25 arasında XSS açığı ticari ürünlerde tespit edilmekte ve çeşitli neriler de bununla beraber yayınlanmaktadır. Şifreleme Yntemleri Beni Koruyabilir mi? SSL kullanan web siteler, hiçbir suretle şifreleme kullanmayan web sitelerine nazaran daha güvenli değildir. XSS saldırılarının şifrelenmiş bağlantılar içerisinde kullanılmasından sonra bu tür bağlantılarda değişiklik olmasına rağmen, diğer web uygulamalarının çalışma yntemi eskisi gibi aynıdır. İnsanlar tarayıcılarında kilit işaretini grünce güvende olduğunu düşünürler. Aslında olay sadece bundan ibaret değildir. XSS Açıkları Komut Çalıştırmaya İzin Verirler mi? XSS açıkları, kısıtlı çalıştırmaya izin veren Javascript eklemeye izin verirler. Eğer saldırgan, tarayıcının açığını exploit edebilirse, komut çalıştırabilmeyi de mümkün kılacaktır. Eğer komut çalıştırma mümkün ise, bu sadece müşteri yani alıcı taraf blgesinde mümkün olacaktır. Daha açık sylemek gerekirse XSS açıkları, tarayıcıda var olabilecek diğer açıkları exploit etmeye yardımcı olabilir. Pdf şeklinde okumak isteyenler: http://www.scribd.com/doc/17750033/XSS-FAQKaynak: http://www.cgisecurity.com/xss-faq.html Çeviri: diamonique Not: XSS FAQ demek, XSS Frequently Asked Questions yani XSS Hakkında Sıkça Sorulan Sorular. Not2: Forumda kesme işaretinden nce slash geliyor. Pdf dosyasından okumanız faydanızadır. Reecep Tayyip'in Askerleriyiz