----------------------------------------------------------------------------- # Konu : XSS Tarih : 19/04/2007 Saat : 11:20 Yazar : Ibrahim BALIÇ # ----------------------------------------------------------------------------- İçerik : 1.XSS Nedir 2.XSS Ne İşe Yarar? 3.XSS Kullanımı ve Genel Bakış (örnek) 4.XSS Atak ----------------------------------------------------------------------------- [1.XSS Nedir?] '''''''''''''' XSS Ingilizce "Cross Site Scripting" Kelimelerinin Baş Harflerinden Ol uşmuştur. Tam Olarak Türkçe Manası Bulunmamaktadır. Anlam Getirmek Gerekirse Script Gömme / Ekleme Anlamı Cıkartılabilir. [2.XSS Ne İşe Yarar?] ''''''''''''''''''''' XSS Birçok İşe Yarar. Basit Bir Açık Gibi Gözükür. Fakat Kullanıcısının Bilgisi Doğrultusunda Çok Tehlikeli Sonuclar Doğurabilir.Günümüzde Encok Kulla nılan Phishing(Fishing'in Feyk Olanı Olarak Adılarınlan Yötem) Yöntemidir. Phishing Yöntemi İle Kullanıcılar Tuza Düşürülür Ve Tabiri Yerinde Kulanan Araş tırmacıların Dediği Gibi Balık Gibi Avlanırlar. [3.XSS Kullanımı] ''''''''''''''''' Diyelimki Bir Web Siteniz Var Ve Burada Bir Üyelik Sisteminiz Var.Üyeler imizin Sitemize Geldiğinde, Kullanıcı Adları Ve Sifrelerini Girip, Bilgilerini Onaylaması ve Sizinde Bu Bilgileri Doğrulayip Onaylamanız Gereklidir. Fakat Kullanıcılarımzın Onaylanan Sifrelerinin Bir Sayfadan Diğerine Gectiğinde de Tekrar Sifre Sordurmak Kullanıcımıza Cehennem Azabı Cektirmek Gibi Bişidir. Bu Yüzden Onaylanan Bilgiler Sistem Tarafindan Hafizada Tutulmalıdır.Hafiza Tut ulan Bu Bilgiler, Bilgisayarinizda Saklanır, Ve Hersayfa Değişimi veya Sonra ki Istekte Tekrar Çağırılıp Kontrol Edilir, Doğrulanırsa İşleme Devam Edilir. Bu Bilgiler Script Tarafindan Kontrol Edildiği İçin, JavaScript Ile Bu Bilgiler Ulaşmak Mümkündür.Xss ile Veri Hırsızlığımızda Tam Bu Sırada Gerçekleşmektedir. Xss Açiğinin Bulunduğu Script Üzerine Dişaridan Dahil Edilecek, Bir Script veya Caliştirdiğimiz Bu Script İçinde Yonlendirilmiş, Bir Script Varsa Yonlendirilen Bu Script Araciliği İlede Sayfadaki Bilgiller Yonlendirlen Sunucu Üzerine Kayit Edilebilirler.Bu Kaydedicilere/Toplayıcılara Sniffer Deniyor,Snifferlara Farklı Bir Konuda Göz Atacağız, Şimdilik Sadece Kullanım Hakkında Bilgi Sahibi Olacaks iniz.Daha Iyi Anlamanız İçin Bu Örneğe Göz Atalım... http://www.turksecuritymaster.com/Security/Turkish/Dersler/uygulamalar/Genel/xss/ Burada Karşınıza, Giriş Paneli Çıkacaktır, Bu Giriş Panelinde Sizden Istenen Bil giler Kullanıcı Adı Ve Şifredir. ------------------------------------ Kullanıcı Adı : Sifre : ------------------------------------ Bu Alanı Dilediğiniz Gibi Doldurabilirsiniz.Sizden Istenen Bilgileri Doldurduktan Sonra Giriş Butonunu Tikladiğimizda Systeminize, Bir Cookie Yaratilacaktır.Bu Dos yada Kullanıcı Adınız ve Şifreniz Hafizada Tutulur. Giriş Yapıp, Merhaba Sy.$Nick Hafizadaki Şifreniz $Sifre. Şeklinde Uyarı Mesajı Aldıktan Sonra Sayfayı Kapatip Açtiğinizda Bile Bu Bilgi Karşınıza Girmiş Olduğunuz Gibi Tekrar Gelecektir. Burada Bu Dosyaya Dişaridan (3.) Birinin Mudahale Etmesi İmkansızdır Aslın da Ama Sizin Daha Oncede Belirttiğimiz gibi Scriptler Bu Dosyaları/Hafıza Bilgilerini Ok uma Hakkına Sahiptir. Eğer Bu Script/Site Üzerindede Xss Aciği Varsa, Buraya Dahi l Edeceğimiz Bir Script Ile Bu Dosyayı Okuyabilir Ve Istersek Kaydettirebiliriz.. Haberiniz Olmadan Bu İşlemi Size Yaptirarak Bircok Yontem Var Bunlarin En Çok Düş üleni Linklere Tıklama Yolu İle Phishingdir. Peki Linklere Tıklama Yolu Ile Nasıl Bu Dosyaya Ulaşım Sağlanıyor Yada Sifremi Alıyorlar Derseniz Oncelikle Scriptimiz i Kontrol Edelim. PHP:giris.php ==================================================================================== 1. 21.
22.
Lutfen Giris Icin Kullanici Adinizi Ve Sifrenizi Yazin:
23. 24.
25.
26.
27. "; 28. } else { 29. echo " 30. 31. Merhaba Sy. ".$_COOKIE["nick"]. 32. Hafizadaki Sifren :" .$_COOKIE["sifre"]."
Tessekkurler 33. "; 34. 35. } 36. break; 37. } 38. 39. ?> ========================================================================================== Bu Biraz Once Kullanmiş Olduğunu Giriş Panelindeki Php Scriptimiz.Burada Birazcik Php Bilginiz Varsa Olayı Hemen Anlayacaksınız. Ben Yinede Kısaca Göz Attıracağım. $nick = Olarak Tanimladiğimiz Değişkene, Post Data Yontemi İle Aldiğimiz Girdiyi, Atadiktan Sonra $Sifre Değişkenine Post Data İle Gelen Veriyi Atadik, Daha Sonra Charset Olarakta Get Data Yontemi İle Geleni. Daga Sonra Switch Kontrolu Ilede Secim Yaptirip, Girdilere Göre İşlem Yaptırdık. Buraya Kadar Herşey Normal, Fakat 30. Satirda Görmüş Olduğunuz Gibi Get Data YOnt mi İle Alıp $Charset Değişkenine Atadiğimiz Bilgi, Direk Olarak KOntrolsuz Bir Şe Kilde Forma Dahil Edilmiş, Yani Bu Demek Oluyorki, Adres Satırına: giris.php?char=utf-8 Değilde giris.php?char=test yazdigimizda. 30. Satır Çıktımızda Şu Sekilde Olacaktır: Çıktı: ==================================================================== ==================================================================== Görmüş Olduğunuz Gibi Direk Olarak Gelen Data Kontrolsuz Ve Secimsiz Olarak Dahil edildiği için, Ne Yazarsak Yazalım, Scripte Yorumlanacaktır. Burada Yola Cikarak giris.php?char="> Çıktı: ====================================================================================================== ====================================================================================================== Bu Cikti Scripte Yorumlandiği Taktirde, sebekresimleri.com Adresindeki sebek.jpg'i Scriptimize Dahil Etmiş Oluruz.Durum Böyle Olunca Scripte Resim Yerine Özel Olarak Hazırladiğimiz Bir Script'i Dahil Edersek Ve Size Bu Scriptin Adresini Tıklatirsak Sayfayi Actiğinizda Görmek Istediğiniz Scripte Ek Olarak, Sonradan Eklemiş Olduğum uz Scriptide Web Tarayıcınızda Yorumlamiş Olacaksınız. Mesela Bizim Hafizadaki Şifreye Okumaya YOnelik Sifremiz Şu Şekilde Olacaktir. giris.php?char=";> Bu Şekilde Adres Yazip Enter Dediğinizde, Karşınıza Daha Onceden Yazmiş Olduğunuz KullanıcıAdı Ve Sifre Uyarı Olarak Gelcektir. Buda Artık Sonradan Dahil Ettiğimiz Scriptin İçeriğine Göre Durumu Değiştirir. Iyı / Yada Kötü.... [4.Atak] '''''''' Xss'le Atak Yapmak Veya Testler Uygulamak Bulmak Çok Bastir. Bana Aylarca Sordular Bu Kadar xss'i nasil Yakaladin Buldun, Hangi Exploit'i Kullanıyorsun vs vs Diye... Hiçbir Exploit Veya Araç Kullanmadım :) Çünkü Böyle Birşeye Gerek Yok... Şimdi Köt üde Olsa Başka Sitelerden Canlı Örneklerden Başlıyalim :) http://feedback.msn.com/default.aspx Adresine Girdiğimizde, Karşımıza Cıkan Sayfa Türkçedir. :) Buradan Anlamamız gerek en şey,Scriptimizin bizim Ip'mize Göre Dil Desteği, Ve Charset Uyguladiğidir. Ozaman Hemen Sayfa Üzerindeki Nesneleri, Linkleri vs Vs leri Kontrol Edelim, Sayfa larımız Arasında Ne Gibi Girdi Çıktılar Oluyor Bakalım... Linkler: ======================================================================================== http://feedback.msn.com/default.aspx?locale=tr-tr http://feedback.msn.com/default.aspx?page=global_changelanguage&locale=tr-tr http://feedback.msn.com/eform.aspx?productkey=newsletter&page=feedback_home_form http://feedback.msn.com/eform.aspx?productkey=privacy&page=feedback_home_form http://g.msn.com/0nwtrtr0/00/20 http://g.msn.com/0nwtrtr0/00/18 http://g.msn.com/0nwtrtr0/00/19 ========================================================================================= Bu Linklere Baktiğimizda, locale=tr-tr Girdisinin Türkçe Sayfalar Arasında En Belirgin Olanı Oldugunu Goreceksinizdir. :) Hemen Bi Bakalım, bi test yapalim. http://feedback.msn.com/default.aspx?locale=tr-tr sini http://feedback.msn.com/default.aspx?locale=tr-tr";>tsmTestleri Yaptiğimizda Sayfamız Acildiktan Sonra, Sayfa Üzerinde Sağ Tuşu Tıklayip, Kaynak Göster Diyelim, ve Girdimizin Nasil Bir Çıktı Yaptiğini Kontrol Edelim: [bi sürü kod vardiye telaşlanmayın, f3 tuşuna basarak arama konsolunu acip, tsmtestlerini aratin] Çıktı ============================================================================================ . .. ... ... .. . ============================================================================================== default.aspx?locale=tr-tr";>tsmTestleri& Çıktı Verdiğini Gördük :) Burada En Önemlisi, > Karakterinin Script Tarafindan Analiz Edil memiş Olmasidir. Buda Demek Oluyorki Script Üzerine htm Tagları Ekliyebiliriz. Mesela default.aspx?locale=tr-tr";> Yaptiğimizda, Uyari mesaji Almamiz Gereklidir. Eger Alamiyorsak Tekrar Sayfa Üzerinde Sağtu şu Tıklayip, Kaynak Göster Diyoruz. Çıktı ============================================================================================ . .. ... URL=http://feedback.msn.com/default.aspx?locale=tr-tr";>&ContentId=&">... .. . ============================================================================================== Olarak Göreceğiz. Burada Gelen Datanin Kontrolu Yerine, Forma Dahil Edilebilecek Scriptlere Engel Olmasi İçin, tagi Eklenmiş, Html'den Birazcik Bilgisi Olanlar Za ten Bu'tagin Kapanişinin Yapildiği Taktirde Scriptin Calişacağini Bilirler. Hemen Adres Cubu guna Su Sekilde Değişiklik Yapıyoruz; default.aspx?locale=tr-tr";> Ve Enter... Şimdi Birde Google İle Bir Arama Yapalim Ve Bize Xss Ataklarını Uygulayabileceğimiz Scriptlei Listelemesini Isteyelim :) Google.com Adresini Acalim, Ve Arama Yerine; inurl:".asp?charset=" yazalim ve cikan tüm sonuclara, ";> tagini ekliyelim :) test olarak Uyarı Aldiğiniz Her Sitede Xss Aciği Buldunuz Demektir. Bu A ciklari Eğer Üyelik Sistemi Varsa, Site Üyelerine Link Atip, Özel Olarak Hazirlanan Sniffer'i Bu Acik Bulunan Forma Dahil Edebileceğinizde veya Yonlendirme Yaptiğinizda Bir Tüm Bilgileri Toplayabilirsiniz.... Örnek: ================================================================================================= www.bilmemne.com/default.asp?charset=";> ================================================================================================= Herkeze Kolay Gelsin Iyı Çalışmalar :) Konu Hakkindaki Örnek Script Icin Bu Adrese Göz Atabilirsiniz: http://www.turksecuritymaster.com/Security/Turkish/Dersler/uygulamalar/Genel/xss/XSS Nedir.rar ------------------------------------------------------------------------------------- Bu Ders Ibrahim BALIÇ Tarafindan www.turksecuritymaster.com Kullanıcıları İçin Hazırlanmiştir. ======================== Ibrahim BALIÇ TSM Security Programmer. ========================