Sqlmap-Nedir ? Nasıl Kullanılır?

 


Sqlmap veritabanı (database) güvenlik açıklarını tespit etmek ve bunları sömürmek (exploit) için ve bunlara kötü kodlar zerk (enjekte) etmek için kullanılan açık kaynaklı gelişmiş bir sızma (penetration), güvenlik yazılımı veya aracıdır. Python ile geliştirilmektedir.

Terminal/Komut Penceresi yani konsol ekranı üzerinden çalışan, SQL Injection açıkları için kullanabileceğiniz verimli ve mantıklı bir kullanıma sahip test (pentest) aracıdır.

Komut satırında çalıştığından ve python ile geliştirildiğinden dolayı birçok işletim sistemleri ile uyumlu çalışır. ( Linux dağıtımları, Windows, MacOS)

Güvenlik açıklarını (zafiyet) bulmasının yanı sıra sızılan kullanıcının hassas bilgilerini düzenleme, görüntüleme, silme gibi fantastik özelliklere de sahiptir. Birçok DBSM(Data-Base Management System- veritabanı yönetim sistemi) ile uyumludur. Aynı zamanda birçok enjeksiyon tekniklerini kullanabilir. Ayrıca sizin verdiğiniz birkaç parametreyle yani kendi içerisindeki yapılandırmaların (konfigürasyonların) kullanılmasıyla zafiyet taraması yaptırabiliyorsunuz.

Sqlmap << adresinden indirebilirsiniz. ( Python 2.7 sürümü sisteminizde yüklü olmalıdır.)

SQL Nedir ?

SQL (Structured Query Language – Yapılandırılmış Sorgu Dili) veritabanı işlemleri için kullanılan basit bir dildir. Hemen hemen birçok uygulama ve web servisleri, içerilerinde veritabanı barındır. Veri-tabanını bir çeşit bakkal defteri gibi düşünülebilir. Siz bakkal amca olarak o defteri yazacaksınız ayrıca istediğinizde silecek ve düzenleyebileceksiniz veya istediğiniz zaman çağıracak gerekli işlemleri yaptıracaksınız. İşte bu da dijitalleşmekte olan dünyamıza ayak uydurmak için şekil almış bir çeşit dildir, bakkal amcanın elektronik dili.

SQL Injection Nedir ?

Bir tür atak/saldırı tekniği diyebiliriz. Bu zafiyete bazen meta-karakterler neden olabilir. Web uygulamalarındaki ciddi açıklardan biridir. Şöyle ki günümüzde bile Nasa vb. markalaşmış kurum ve sitelerde dahi rastlanabiliyor, ummadık zafiyet basit de olsa ummadık yerden başımızı ağrıtabiliyor. Basit ama etkili olduğundan dikkatli bir şekilde üzerinde durulması gereken bir konu olduğunu düşünüyorum. ( Bu zafiyet her türlü veritabanı-uygulama ilişkisi sahibi yazılımlarda bulunabilir yalnızca bu dile ve bu veri-tabanına özgü değildir.)

Temel olarak bir şeyler öğrendiğimize göre artık uygulamalarımıza başlayabiliriz. Her zamanki gibi Kali Linux kullanacağım. Sizlerin hangi işletim sistemi kullandığı çok fark etmeyecektir.

Kali üzerinde sqlmap halihazırda yüklü olarak gelmektedir. Eğer başka bir işletim sistemi kullanıyorsanız veya yüklü değilse yukarıda verdiğim bağlantıdan indirebilirsiniz. Linux kullanıcısı iseniz “apt install sqlmap” komutunu terminalinize yazdığınızda inecektir.

–dbs: veritabanlarını görüntüler.
–tables: veri-tabanındaki tablolar görüntüler.
–columns: Veri-tabanındaki sütunlar görüntülenir.
–dump: DBMS veritabanı girişlerini dökecektir.

Sqlmap üzerinden izleyeceğimiz senaryo :

Veritabanı>Tablo>Kolon>Veri

Şimdi örnek bir Test ortamı üzerinden gayet yasalara uygun bir şekilde Testimizi gerçekleştirelim. Sizlerden veya senden de beklentim bunu iyi amaçlar için kullanman.



Bu benim kullandığım webforpentester laboratuvarı. Sanal makine üzerinden kurdum ve yerel bir ip adresine sahip. Bunu sql açığı bulduğunuz bir site gibi düşünmenizi istiyorum. SQL Injections bölümünden “example 1” bölümüne giriş yapıyorum.



Önüme çıkan sayfa SQL Injection zafiyetinin bulunduğu sayfa. Bu sayfanın adresini kopayalayarak Kali Linux da terminali açıyorum. Ve aşağıdaki kodu yazıyorum.

sqlmap -u http://192.168.1.10/sqli/example1.php?name=root –batch –dbs

  • URL belirtileceğini gösteren paremetre
  • Zafiyet bulunan sayfanın adresi
  • SQLMap varsayılan ayarları ile soruları cevaplar (öğrenme aşamasındaki kişiler için uygundur)
  • Veritabanını çağırır

Karşıma 2 tane veritabanı çıkıyor. “information_schema”  adlı veritabanı genelde tüm veritabanlarında bulunur. Bizim işimize yaramayacak bilgiler vardır. O yüzden diğer veritabanı “exercises” üzerinden ilerleyeceğiz. Yukarıda yazdığımız kodda –dbs kısmını silerek -D yapacağız ve yeni kodumuzu yazacağız.

 

sqlmap -u http://192.168.1.10/sqli/example1.php?name=root –batch -D exercises –tables

  • Veritabanı
  • Girilecek veri tabanı
  • Tablo

 

Renkli bölümler açıklayarak kodu düzenlediğim kısımlar. Bu kodla devam ettiğimizde;

sqlmap -u http://192.168.1.10/sqli/example1.php?name=root –batch -D exercises –tables

 

Seçtiğimiz veri tabanı içerisinde users adlı tablo bulunduğunu görüyoruz. İşimize yarayacak bir tablo adıdır. Bakalım içerisinde neler varmış. Bu tabloya girmek için önceki yazdığımız kodda –tables kısmını -T olarak değiştiriyoruz ve yeni kodumuzu yazıyoruz.

sqlmap -u http://192.168.1.10/sqli/example1.php?name=root –batch -D exercises -T users –columns

  • Tablo
  • Girilecek tablo adı
  • Kolon

Bu kod ile devam ettiğimizde;


sqlmap -u http://192.168.1.10/sqli/example1.php?name=root –batch -D exercises -T users –columns

Seçtiğimiz tablo içrisinde “id,name,age,groupid,passwd” adlı kolonlar görüyoruz. Bu kolonlardaki bilgi bizim aradığımız bilgi. Önceki kodumuzdaki –columns kısmını -C olarak değiştiriyoruz ve yeni kodumuzu yazıyoruz. 

sqlmap -u http://192.168.1.10/sqli/example1.php?name=root –batch -D exercises -T users -C id,name,age,groupid,passwd –dump

  • Kolon
  • Görüntülenecek kolon adları (birden fazla girilecekse virgül ile ayrılıp bitişik yazılmalı)
  • Dump etmek (Ekrana dökmek)

Bu kod ile devam ettiğimizde;

sqlmap -u http://192.168.1.10/sqli/example1.php?name=root –batch -D exercises -T users -C id,name,age,groupid,passwd –dump

Yukarıdaki gibi kolonların çıktısını alıyoruz. Burada zafiyet bulduğumuz sitenin kullanıcıları yer alır. Bu kullanıcıların bilgisi ile zafiyeti bulduğunuz siteye giriş yapabilirsiniz. Sitenin yöneticisin şifresi de burada bulunur ve sisteme üst bir yetkili olarak giriş yapabilirsiniz.

Uzun gibi görünen SQLMap giriş kısmı aslında gayet basittir. Sen tekrar ederek ve deneyerek bu konuda pratik kazandıktan sonra, ileri seviye SQLMap kullanımı makalesinde görüşebiliriz. O zamana kadar iyi günler, bugsız kodlamalar.

0 Yorumlar

Yorum Gönder

Yorum Gönder (0)

Daha yeni Daha eski
Oxygen Chrome