IRCForumlarý - IRC ve mIRC Kullanýcýlarýnýn Buluþma Noktasý
  odeaweb

>
+
Etiketlenen Kullanýcýlar

 
 
LinkBack Seçenekler Stil
Prev önceki Mesaj   sonraki Mesaj Next
Alt 07 Mart 2010, 15:02   #1
Çevrimiçi
Kullanýcýlarýn profil bilgileri misafirlere kapatýlmýþtýr.
IF Ticaret Sayýsý: (0)
IF Ticaret Yüzdesi:(%)
Injection Flaws




Dinamik SQL sorgularýnýn kullanýldýðý sistemlerde oluþabilecek bir açýktýr.


Bir kullanýcý adý parola sýnamasý yapýlan SQL cümleciðinde kullanýlabilir.


Kod:   Kodu kopyalamak için üzerine çift týklayýn!
Select MemberID From Member Where Username = '" + txtUsername.Text + "' and Password = '" + txtPassword.Text + "'"


Þeklinde bir SQL cümlesinin kullanýldýðý bir sistemde aþaðýdaki ifadeleri girelim
Kod:   Kodu kopyalamak için üzerine çift týklayýn!
txtUsername.Text : ' or 1=1 -- txtPassword.Text : 123


ifadesi aþaðýdaki SQL cümlesinin çalýþtýrýlmasýný saðlar


Kod:   Kodu kopyalamak için üzerine çift týklayýn!
Select MemberID From Member Where Username = '' or 1=1 -- ' and Password = '" + txtPassword.Text + "'"

-- ifadesi SQL Server için yorum satýrý anlamýna geldi için çalýþtýrýlmaz.


Where ifadesini inceleyelim :


Username = '' false döner, 1 = 1 ise true. Or karþýlaþtýrmasýnda ise False or True’nun sonucu true’dur. Dolayýsýyla doðru kullanýcý adý parola girilmese dahi geriye tüm kayýtlar döner ve saldýrgan ilk kaydýn yetkisi ile içeriye giriþ yapmýþ olur.


Saldýrgan “SQL Injection” yöntemi ile veritabaný hakkýnda daha detaylý bilgi edinebilir. SQL Server üzerinde System Administrator hesabý açabilir, Tüm Tablolarýn listesini ve bu tabolardaki bilgilere ulaþabilir. Hatta web uygulamasý sa yetkisine sahip bir kullanýcý ile çalýþtýrýlýyorsa xp_cmdshell ‘format C:’ ile sisteme format bile atabilir.



Dinamik SQL sorgularýndaki bu içeri sýzmalarý engellemenin yolu parametre kullanmaktýr.


Bunu SqlCommand nesnesine SqlParameter tipinde parametre ekleyerek yapabiliriz.


Kod:   Kodu kopyalamak için üzerine çift týklayýn!
SqlConnection conn = new SqlConnection(); conn.ConnectionString = "[ ConnectionString ]"; SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandText = " Select MemberID" + " From Member" + " Where Username = @username and Password = @password"; cmd.Parameters.AddWithValue("@username",txtUsername.Text); cmd.Parameters.AddWithValue ("@password",txtPassword.Text); conn.Open(); int MembetID = Convert.ToInst32(cmd.ExecuteScalar()); conn.Close();

Bu þekilde kullandýðýmýz dinamik SQL sorgularýnda Injection yönetimini bertaraf etmiþ oluruz.

 
Alýntý ile Cevapla

 

Etiketler
flaws, injection


Konuyu Toplam 1 Üye okuyor. (0 Kayýtlý üye ve 1 Misafir)
 

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajýnýzý Deðiþtirme Yetkiniz Yok

BB code is Açýk
Smileler Açýk
[IMG] Kodlarý Açýk
HTML-Kodu Kapalý
Trackbacks are Kapalý
Pingbacks are Açýk
Refbacks are Açýk


Benzer Konular
Konu Konuyu Baþlatan Forum Cevaplar Son Mesaj
Anti-SQL Injection Function hAte PHP 0 07 Kasým 2014 06:33
Beyonce - Flaws And All Blood Yabancý Þarký Sözleri 0 27 Eylül 2014 19:25
SQL injection ve Korunma Yöntemleri CeSaRCripS MySQL 0 10 Nisan 2013 14:57
PHP'de SQL injection Güvenliði CeSaRCripS PHP 0 15 Aralýk 2012 20:21