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.

Hiç yorum yok:

Yorum Gönder

Yorumunuz kayıt edilmiştir en kısa sürede kontrol edilip onaylanacaktır.