SQL Injection Nedir ?

Merhabalar,

Veri tabanları ile ilişkili kod yazmaya başlamadan önce bu konuyu bilmek çok önemli..!

SQL Injection, Veri tabanına dayalı uygulamalara saldırmak için kullanılan bir tekniğe verilen addır, sistemdeki basit bir açığınızdan yararlanarak Database’ine kolayca sızabilir veri kaybına uğratabilir veya Database’inizi dışarıya dahil açabilir.

Şimdi en basit hali ile bu nasıl oluyor görelim.

En basitinden bir kullanıcı tablosu yapıp içerisine bir kaç kullanıcı ekleyelim.

Ek olarak yeni bir proje oluşturup, iki tane login formu yapalım.

 

  1. Formdaki login kodumuzu aşağıdaki gibi yazalım.

 

2. Formdaki login kodumuzu aşağıdaki gibi yazalım.

 

  1. kodda gördüğünüz gibi ekrandan aldığım bilgileri doğrudan string cümle içerisinde kullandım, 2. kodda bu bilgileri parametre olarak geçtim.

Sonuç olarak çalışır mı evet her iki kodda çalışır. ancak 1. koddaki kullanım büyük güvenlik zafiyeti doğurur.

Şimdi kullanıcı adına mehmet, parola’ya e32rcd3 yazıp login dediğizde iki tarafda login başarılı diyor.

 

 

 

Ancak kötü niyetli kişi , parola alanına şöyle bir şey yazar ise  ‘; TRUNCATE TABLE users_test;

2. Form ile giriş yap butonuna bastığında aşağıda gördüğünüz gibi ,  Kullanıcı Adı veya Parola Hatalı hatasına düşecektir.

 

Eğer aynı şeyi parametre kullanmadığımız kodda kullanırsa, Sistem Hatası fırlatacak yani Exception’a düşecek kodumuz ayrıca farklı kullanımlarda düşmeyedebilirdi.

 

ancak bu hata sonrası baktığınızda kullanıcı tablonuzun yerinde yeller estiğini göreceksiniz.

 

Kötü niyetli kişi parolaya  ‘; TRUNCATE TABLE users_test;   yazdığında, yazılan bu kod sizin cümlenize eklendi, bu bu hale geldi.

 

yani bizim sorgumuzun yanına kendi sorgusunu enjekte etti. yukarıda Exception’a düşmesinin sebeb dei en sonda kalan işareti.

 

Aşağıdaki videodan da durumu gözlemleyebilirsiniz.

 

 

Örnek bir şirketin database’inde gerçek saldırı görüntüleri.

 

 

Saygılar…

 

yhackup

Site Kurucusu & Yöneticisi Yazılım Geliştiricisi

0 0 votes
Bu yazıya oy ver
Subscribe
Bildir
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x