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.