Yazılımcının Günlüğü | YazilimGunlugu.Com
Arama
Makale Kategorileri
Üye Girişi
Şuanki online üyeler()
Aktif üye bulunmamaktadır.


Injection Flaws - File upload

Yazar: Mustafa Güler

Kategori: .NET Framework

Eklenme Tarihi: 16.10.2007 23:48:33

Web uygulamanıza Fileupload ile dosya yüklemesi yapmak istiyorsanız türünü belirlemek zorundasınız.Örneğin bir resim upload sistemi yaptınız.Mesela resim upload sisteminde saldıran kişi Yaptığı bir hacked.asp upload eder. dışardan göndermiş olduğu bir dosyayı sisteminizde çalıştırabilir.ve sitenize

Kötü Niyetli Dosya Çalıştırma

Bu şekilde sisteminizin izin verdiği ölçüde yeni dosyalar oluşturabilir. Örneğin anadizinde ki default.aspx dosyasını silip yerine bir default.asp dosyası oluşturabilir. Böylece siteniz açıldığında


Yazısı ile karşılaşabilirsiniz.....

Böyle üzücü durumların yaşanmaması için sisteminize upload edilen dosyaların türünü denetlemek gerek.

Bunun için System.IO.Path ve System.Text.Regex namespacelerinden yararlanacağız.

Önce upload edilen dosyasın uzantısı nı alacağız ve kabul ettiğimiz dosya türleri içerisinde olup olmadığını denetleyeceğiz.

string uzanti = System.IO.Path.GetExtension(FileUpload1.PostedFile.FileName);

System.IO.Path.GetExtension metodu uzntıyı bize ?.jpg? gibi noktalı bir şekilde verir.

Kullanıcı tarafından gönderilen dosya ismi büyük harfler ile yazılmış olabilir. Buda birazdan yapacağımız karşılaştırmada farklıymış gibi algılanmasına sebep olur. Bu yüzden uzantı harflerini küçültelim.

uzanti = uzanti.ToLower();

Kabul edeceğimiz dosya uzantıları için teker teker if kontrolü yazmamak için Regular Expression ifadelerinden yararlacağız.

using System.Text.RegularExpressions;

.....

if(Regex.IsMatch(uzanti,".jpg|.jpeg|.gif|.png|.bmp") == false)

{

// gönderilen dosya formatı uygun değil

}

else

{

// gönderilen dosya formatı uygun.

}

İlk yazım olduğu için yorumlarınızı bekliyorum.ilk sitemde bu üzücü durumu yaşamıştım.uğraştım bir resim upload sistemi yaptım ama çok amatör.tabi ozamanlar somee kullanıyordum.somee yi hacklemek için zehir3.asp diye bir sistem kullanılıyormuş.Bende bilgisayar hocama bakın ne yaptım diye gösterecektim bir baktık Hacked By ?? birde Atatürk resmi koymuşlar.Gerçekten bunları anlamasamda .Tek çare önlem almak.Bende siteleri karıştırırken bununla ilgili bir makale buldum ve okudum inceledim ve yeni başlayan arkadaşlarımız için bir önlem olur diye düşündüm ve bu makaleyi yazdım.En büyük açık Unutmaktır !!!

msn:info@ardasemerci.com

Yazar Hakkında 1 Yorum Yorum Yaz Yazara ait diğer Makaleler
Tema
Anket
ASP.NET MVC'yi Projeleriniz de kullandınız mı?


En Çok Okunan Makaleler
En Son Eklenen Makaleler
Soru Merkezinde Bekleyenler
Ana Sayfa | Hakkımızda | Editörler | Yazarlar | RSS RSS | İletişim
Yazılım Günlüğü 2007-2009 © Tüm Hakları Saklıdır.