Öncelikle günümüzde hala sql injection açıklı siteler var bu siteleri hacklemek çok basit
Hacklemek istediğimiz sitenin sonunda ".php?id=123" gibi değerler olması gerekmektedir ha derseniz kral öyle bişi yok çok önemli birşey değil o sitede açık varsa yine işleme devam edebilirsiniz!!!
Kullanım:
ilk olarak parametreleri anlamamız lazım.
Parametreler:
-h/-help (Aynı şekilde burdaki parametrelerin hepsini ingilizce şekilde görebilmenizi sağlar) "Yardım Menüsü"
-hh (Gelişmir Yardım Menüsü )
-u/-url (hedef siteyi belirtmek için kullandığımız kod ) Örnek: sqlmap -u www.hedefsite.com
-l (BurSuite Ve Webscarab ile çekilmiş log dosyalarını kullanarak, testler gerçekleştirmemizi sağlar )
-x (SiteMap"xml"Dosyası ile site açığı tarar)
-m (Belirtilen .txt dosyasındaki siteleri tarar) Örnek: sqlmap -m /Desktop/siteler.txt
-r (Belirtilen txt dosyası içindeki requestler(POST,GET) ile tarama yapar )
-g (Google dork ile belirli bir paterni olan siteleri tarar) Örnek: sqlmap -g .php?id=
-c (Costom bir config dosyası ile tarama yapmamızı sağlar) Örnek: sqlmap -c config.ini ....
--data (Post methodu ile istek gönderirken gönderirinin tamamlandığı kısım
--param-del (Gönderilecek değerlerin hangi değerlerden itibaren ayırıcağını belirler)
--cookie (Eğer sitede belirli bir cookie kullanmanız gerekiyorsa kullanacığını komut) Örnek: sqlmap -u www.hedefsite.com/site.php --cookie="session145613251234"
--cookie-del (Cookie içeriside gönderilecek değerlerin hangi değerlerden itibaren ayrılması gerektiğiin belirlenecei komutumuz)
--load-cookies (Netscape/wget formatında tanımlı dosya içerisinden cookielerin yüklenmesi amacı ile kullanılan komutumuz)
--user-agent: Testlerimizde kullanacağımız User-Agent değerini kendimiz belirlemek için kullanabileceğimiz komutumuz.
--random-agent: Testlerimizde kullanacağımı User-Agent değerinin, sqlmap ile hazır gelen user-agent değerlerinin bulunduğu dosya içeriisnden random olarak atanması için kullanabileceğimiz parametremiz.
--host: Gönderilen başlık bilgisi içerisindeki Host kısmını, request yapılacak site kısmını, istediğimiz gibi değiştirmek için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --host=www.siteadi.com
--referer: Gönderilen başlık bilgisi içerisindeki Referer kısmını, hangi adres üzerinden yönlendirilme yaptığımızı (history -1 gibi), istediğimiz gibi değiştirmek için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --referer=www.gosterilecekAdresimiz.com
--headers: Gönderilen başlık bilgisi içerisindeki diğer başlık bilgilerini (Accept-Encoding gibi), istediğimiz gibi değiştirmek amacıyla kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --headers="User-Agent: Mozilla/5.0 (X11;Ubuntu; Linux i686; rv:25.0) Gecko/20100101 Firefox/25.0
--auth-type: Site üzerinde yapılacak authentication işleminin tipini belirtmek için kullanabileceğimiz parametremiz. Basic, Digest, NTLM ya da PKI gibi değerler alabilir. Örnek olarak:
sqlmap -u "www.siteadi.com/login.php" --auth-type="Basic"
--auth-cred: Site üzerinde yapılacak authentication işleminde gönderilecek veirleri tanımlamak için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/login.php" --auth-type="Basic" --authcred="usernameassword"
--auth-private: Login işlemini pem sertifikası ile yapmak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/login.php" --auth-type="Basic" --auth-cred="userass" --auth-private="asd.pem"
--proxy: Proxy kullanarak işlem yapmak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak::
sqlmap -u "www.siteadi.com/testet.php?id=1" --proxy="http://127.0.0.1:8080"
--proxy-cred: Proxy kullanmak istiyorsak ve bağlanacağımız proxy'e ait user/pass değerleri varsa, bunları tanımlamak için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --proxy="http://proxysite.comortNumber" --proxy-cred="proxyUserroxyPass"
--proxy-file: Proxy bilgilerini bir dosya içerisinden yüklemek istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --proxy-file=dosyaAdi
--ignore-proxy: Sisteme tanımlı default proxy ayarlarını kullanmak istemiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --ignore-proxy
--tor: Tor network'ünü kullanarak gizliliğimizi sağlamak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tor
--tor-port: Tor network'üne hangi port üzerinden bağlanmak istediğimizi belirtmek için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tor --tor-port=9150
--tor-type: Tor ağına;HTTP, SOCKS4 ya da SOCKS5 ile hangisinden bağlanmak istiyorsak tanımlamak için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tor --tor-type=SOCKS5
--check-tor: Tor ağına, bağlantının sağlanıp sağlanmadığını test etmek için kullanabileceğimiz parametremiz. Eğer ağa bağlantı yoksa, geçerli sqlmap testi otomatik olarak iptal edilir. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tor --tor-type=SOCKS5 --check-tor
--delay: Her bir HTTP request için aralarda beklenilecek süreyi saniye cinsinden ifade etmek amacıyla kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --delay=5
--timeout:Bir bağlantının timeout olarak nitelendirilip isteğin iptal edilmesi için gerekli süreyi saniye cinsinden ayarlamak için kullanabileceğimiz parametremiz. Default değer olarak 30sn alır.
Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --timeout=10
--retries: Bağlantımız timeout olup iptal edildiğinde, aynı requestin kaç kere daha deneneceğini ayarlamak için kullanabileceğimiz parametremiz. Default olarak 3 değerini alır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --timeout=5 --retries=20
--randomize: Verilen parametrelerin random değerlerle değiştirilmesini istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --randomize=id
--safe-url: Test süresince belli bir frekansta ziyaret edilecek url adresimizi belirlemek istiyorsak kullanabileceğimiz parametremiz. Bazı sistemlerde belli bir sayıda hatalı giriş ile session sonlandırılmasını önlemek amacı ile kullanılır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --safe-url="www.siteadi.com"
--safe-freq: Test süresince ziyaret edilmesini istediğimiz url'in zaman ayarını(frekansını) yapmak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --safe-url="www.siteadi.com" --safe-freq=3
--skip-urlencode: Test etmek istediğimiz parametrelerin url-encoding işleminden geçirilme işlemini atlamak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --skip-urlencode
--force-ssl: SSL/HTTPS bağlantısını kullanmasını zorlamak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "https://www.siteadi.com/testet.php?id=1" --force-ssl
-hpp: "HTTP Parameter Pollution" metodu ile test işlemimizi gerçekleştirmek istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?a=1&b=2&c=3" --hpp
--eval: Belirtilen python kodunu istek yapılmadan önce çalıştırıp, ardından bu sonuca göre istek yapmak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=123&id2=456" --eval="import hashlib; id=hashlib.md5(id).hexdigest()"
Optimization Sekmesi: Sqlmap'i performans alanında optimize etmek istiyorsak kullanabileceğimiz parametrelerin bulunduğu kategorimiz.
-o: Tüm optimizasyon anahtarlarını kullanmak istiyorsak kullanabileceğimiz parametremiz. --keep-alive, --null-connection ve --threads=3 olarak default tanımlanır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" -o
--predict-output: txt/common_outputs.txt dosyası içerisindeki en çok karşımıza çıkan çıktıları tahmin ederek, test işlemimizin daha hızlı bitmesi konusunda yardımcı olur.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --predict-output
--keep-alive: Kalıcı(persistent) HTTP(s) bağlantıları kurmak için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --keep-alive
--null-connection: HTTP cevabının uzunluğunu, HTTP body'i çekmeden belirlemek için kullanılan parametremiz. Aktif edildiğinde sqlmap iki farklı NULL bağlantı tekniği ile test ve exploit işlemleri gerçekleştirir. Bunlar Range ve Head'dir. Bunlardan herhangi biri test edilen server tarafından da destekleniyorsa, işlemimizi hızlandırmamıza yardımcı olur. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --null-connection
--threads: Multi-threading ile sqlmap'in maximum kaç tane HTTP(s) isteği yapabileceğini belirlemek için kullanabileceğimiz parametremiz. Özellikle bruteforce searching işlemlerinde, aramamızı oldukça hızlandıran bu yöntem, performans sebepleri gerekçesiyle max. 10 thread kullanılması tavsiye edilmekte. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --threads=10
Injection Sekmesi: Hangi parametrelerin test edileceği, kişisel payload tanımlamaları ve tamper scriptleri tanımlamaları gibi ayarlamaları yapabileceğimiz parametrelerin bulunduğu kategorimiz.
-p: Verilen parametreler içerisinde sadece belirli parametrelerin test edilmesini istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?username=asd&password=asd&denemeA=1&den emeB=2&denemeC=3" -p denemeA
--skip: Verilen parametreler içerisinde sadece bazı parametrelerin test edilmesini istemiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?username=asd&password=asd&denemeA=1&den emeB=2&denemeC=3" --skip denemeA,denemeB,denemeC
--dbms: Sqlmap'e yardımcı olmak adına, eğer backend'de çalışan database management system'i biliyorsak, dbms ile tanımlayabilmekteyiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --dbms="MySql"
--os: Sqlmap'e yardımcı olmak adına, eğer işletim sistemini biliyorsak, os ile bunu da tanımlayabilmekteyiz.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --dbms="MySql" --os="Linux"
--invalid-bignum: Sqlmap'in orjinal parametre değerlerini geçersiz kılmaya çalışırken kullandığı yollara çok büyük sayıları da (Örn:999999) eklemek için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --invalid-bignum
--invalid-logical: Sqlmap'in orjinal parametre değerlerini geçersiz kılmaya çalışırken kullandığı yollara Boolen denemeleri de (Örn: id=1 AND 2=5) eklemek için kullanabileceğimiz parametrelerimiz.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --invalid-logical
--invalid-string: Sqlmap'in orjinal parametre değerlerini geçersiz kılmaya çalışırken kullandığı yollara rastgele string değerler ile (Örn: ad=xUqmnfi) eklemek için kullanabileceğimiz parametrelerimiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?ad=intelrad" --invalid-string
--no-cast: Payload casting mekanizmasını kapatır ve payloadları kısaltır. Ancak default olarak gelen ayrıcalıkları tam olarak kullanamayabiliriz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --no-cast
--no-escape: Test edeceğimiz server üzerinde "mysql_real_escape_string" ya da "magic_quotes" gibi ifadeler kullanılıyorsa, tek tınak gibi ifadelerimizi "SELECT char(102)+char(111)" gibi ifadelerle test edip, zamandan kazanmak için kullanabileceğimiz parametremizdir. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --no-escape
--prefix: Test edilecek parametreleri, payloadların önüne istediğimiz değeri ekleyerek daha da özelleştirebileceğimiz parametremizdir.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?ad=deneme" --prefix "')"
--suffix: Test edilecek parametreleri, payloadların sonuna istediğimiz değeri ekleyerek daha da özelleştirebileceğimiz parametrelerimizdir.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?ad=dememe" --suffix "')"
--tamper: Eğer kullanıcı ile back-end database arasında zayıf bir giriş kontrolü varsa injection yapılacak stringleri WAF'tan geçirebilmek amacı ile kullanılan parametremiz. Önüne alacağı parametre sqlmap klasörü içerisindeki tamper klasörü içerisinden kullanılır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tamper="between"
Detection Sekmesi: Risk ve seviye belirleme gibi, belirleme adımlarını belirlemek için kullanabileceğimiz parametrelerimizin bulunduğu kategorimiz.
--level: 1 ile 5 arasında değerler alabilen parametremiz. 1. seviyede daha kısıtlı testler denetlenirken, 5.seviyede daha fazla payload, daha detaylı prefix ve suffixler ile zenginleştirilmiş payloadlar kullanılmaktadır. Ayrıca HTTP Cookie başlığı 2.seviyeden sonra ve HTTP User-Agent/Referer başlıkları da seviye 3'ten sonra denetlenmektedir. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --level=5
--risk: 1 ile 3 arasında değerler alabilen parametremiz. Eğer belirtilmezse default olarak 1 değerini alır. Risk 1 daha sınırlı sql cümleleri ile denetleme yapar. Risk 2'de risk 1'in üzerine heavy-query time based saldırılar da denetlemeye tabii tutulur. Risk 3'te ise ekstradan Or-based testler de eklenir.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --risk=3
--string: Sorguyu çalıştırdıktan sonra, belirlediğimiz string ile karşılaştırma yapıp, karşılaştırma varsa True olarak dönen değeri eşleştirmek için kullandığımız parametremiz.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --string="Kullanici"
--not-string: Sorguyu çalıştırdıktan sonra, belirlediğimiz string ile karşılaştırma yapıp, karşılaştırmamız yoksa True olarak dönen değeri eşleştirmek için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --not-string="Kullanici"
--regexp: Sorguyu çalıştırdıktan sonra, belirlediğimiz regex ifade ile karşılaştırma yapıp, karşılaştırmamız varsa True olarak dönen değeri eşleştirmek için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --regexp="[0-9]{11}"
--code: HTTP sorgusu sonrası, server tarafından dönen cevaba göre (200 True ve 401 False) eşleştirmek için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --code=200
--text-only: CSS,JS gibi tagleri göz ardı ederek, sadece metin içeriğine göre sayfaları karşılaştırmak için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --text-only
--titles: Sadece website başlığı baz alınarak sayfaları karşılaştırmak için kullanabileceğimiz parametremizÖrnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --titles
Techniques Sekmesi: Kullanılacak SQL Injection tekniklerini belirlemek için kullanacağımız parametrelerimizin bulunduğu kategorimiz.
--technique: Kullanılacak SQL Injection tekniklerini belirlediğimiz parametremiz. Default olarak BEUSTQ ( Bool-Based Blind, Error-Based, Union-Query Based, Stacked Query, Time-Based Blind, Inline Queries). Ancak bunlardan sadece bazılarının test için kullanılmasını istiyorsak o zaman örnek kullanımımız aşağıdaki gibi olmakta. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --technique="BEST"
--time-sec: DBMS cevabının gecikmesi için belirlenen süreyi tanımlayabileceğimiz parametremiz. Default olarak 5 tanımlıdır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --time-sec=10
Hacklemek istediğimiz sitenin sonunda ".php?id=123" gibi değerler olması gerekmektedir ha derseniz kral öyle bişi yok çok önemli birşey değil o sitede açık varsa yine işleme devam edebilirsiniz!!!
Araç Kurulumu:
Sqlmap zaten kali linux içinde hali hazırda olan bi tool ama kali"nin farklı sürümlerini kullanıyosanız "apt-get install sqlmap" komutu ile terminalden kurabiliriz kurulum esnasında karşımıza gelen sorulara "Y" yazıp devam edebiliriz.Kullanım:
ilk olarak parametreleri anlamamız lazım.
Parametreler:
-h/-help (Aynı şekilde burdaki parametrelerin hepsini ingilizce şekilde görebilmenizi sağlar) "Yardım Menüsü"
-hh (Gelişmir Yardım Menüsü )
-u/-url (hedef siteyi belirtmek için kullandığımız kod ) Örnek: sqlmap -u www.hedefsite.com
-l (BurSuite Ve Webscarab ile çekilmiş log dosyalarını kullanarak, testler gerçekleştirmemizi sağlar )
-x (SiteMap"xml"Dosyası ile site açığı tarar)
-m (Belirtilen .txt dosyasındaki siteleri tarar) Örnek: sqlmap -m /Desktop/siteler.txt
-r (Belirtilen txt dosyası içindeki requestler(POST,GET) ile tarama yapar )
-g (Google dork ile belirli bir paterni olan siteleri tarar) Örnek: sqlmap -g .php?id=
-c (Costom bir config dosyası ile tarama yapmamızı sağlar) Örnek: sqlmap -c config.ini ....
--data (Post methodu ile istek gönderirken gönderirinin tamamlandığı kısım
--param-del (Gönderilecek değerlerin hangi değerlerden itibaren ayırıcağını belirler)
--cookie (Eğer sitede belirli bir cookie kullanmanız gerekiyorsa kullanacığını komut) Örnek: sqlmap -u www.hedefsite.com/site.php --cookie="session145613251234"
--cookie-del (Cookie içeriside gönderilecek değerlerin hangi değerlerden itibaren ayrılması gerektiğiin belirlenecei komutumuz)
--load-cookies (Netscape/wget formatında tanımlı dosya içerisinden cookielerin yüklenmesi amacı ile kullanılan komutumuz)
--user-agent: Testlerimizde kullanacağımız User-Agent değerini kendimiz belirlemek için kullanabileceğimiz komutumuz.
--random-agent: Testlerimizde kullanacağımı User-Agent değerinin, sqlmap ile hazır gelen user-agent değerlerinin bulunduğu dosya içeriisnden random olarak atanması için kullanabileceğimiz parametremiz.
--host: Gönderilen başlık bilgisi içerisindeki Host kısmını, request yapılacak site kısmını, istediğimiz gibi değiştirmek için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --host=www.siteadi.com
--referer: Gönderilen başlık bilgisi içerisindeki Referer kısmını, hangi adres üzerinden yönlendirilme yaptığımızı (history -1 gibi), istediğimiz gibi değiştirmek için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --referer=www.gosterilecekAdresimiz.com
--headers: Gönderilen başlık bilgisi içerisindeki diğer başlık bilgilerini (Accept-Encoding gibi), istediğimiz gibi değiştirmek amacıyla kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --headers="User-Agent: Mozilla/5.0 (X11;Ubuntu; Linux i686; rv:25.0) Gecko/20100101 Firefox/25.0
--auth-type: Site üzerinde yapılacak authentication işleminin tipini belirtmek için kullanabileceğimiz parametremiz. Basic, Digest, NTLM ya da PKI gibi değerler alabilir. Örnek olarak:
sqlmap -u "www.siteadi.com/login.php" --auth-type="Basic"
--auth-cred: Site üzerinde yapılacak authentication işleminde gönderilecek veirleri tanımlamak için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/login.php" --auth-type="Basic" --authcred="usernameassword"
--auth-private: Login işlemini pem sertifikası ile yapmak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/login.php" --auth-type="Basic" --auth-cred="userass" --auth-private="asd.pem"
--proxy: Proxy kullanarak işlem yapmak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak::
sqlmap -u "www.siteadi.com/testet.php?id=1" --proxy="http://127.0.0.1:8080"
--proxy-cred: Proxy kullanmak istiyorsak ve bağlanacağımız proxy'e ait user/pass değerleri varsa, bunları tanımlamak için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --proxy="http://proxysite.comortNumber" --proxy-cred="proxyUserroxyPass"
--proxy-file: Proxy bilgilerini bir dosya içerisinden yüklemek istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --proxy-file=dosyaAdi
--ignore-proxy: Sisteme tanımlı default proxy ayarlarını kullanmak istemiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --ignore-proxy
--tor: Tor network'ünü kullanarak gizliliğimizi sağlamak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tor
--tor-port: Tor network'üne hangi port üzerinden bağlanmak istediğimizi belirtmek için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tor --tor-port=9150
--tor-type: Tor ağına;HTTP, SOCKS4 ya da SOCKS5 ile hangisinden bağlanmak istiyorsak tanımlamak için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tor --tor-type=SOCKS5
--check-tor: Tor ağına, bağlantının sağlanıp sağlanmadığını test etmek için kullanabileceğimiz parametremiz. Eğer ağa bağlantı yoksa, geçerli sqlmap testi otomatik olarak iptal edilir. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tor --tor-type=SOCKS5 --check-tor
--delay: Her bir HTTP request için aralarda beklenilecek süreyi saniye cinsinden ifade etmek amacıyla kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --delay=5
--timeout:Bir bağlantının timeout olarak nitelendirilip isteğin iptal edilmesi için gerekli süreyi saniye cinsinden ayarlamak için kullanabileceğimiz parametremiz. Default değer olarak 30sn alır.
Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --timeout=10
--retries: Bağlantımız timeout olup iptal edildiğinde, aynı requestin kaç kere daha deneneceğini ayarlamak için kullanabileceğimiz parametremiz. Default olarak 3 değerini alır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --timeout=5 --retries=20
--randomize: Verilen parametrelerin random değerlerle değiştirilmesini istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --randomize=id
--safe-url: Test süresince belli bir frekansta ziyaret edilecek url adresimizi belirlemek istiyorsak kullanabileceğimiz parametremiz. Bazı sistemlerde belli bir sayıda hatalı giriş ile session sonlandırılmasını önlemek amacı ile kullanılır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --safe-url="www.siteadi.com"
--safe-freq: Test süresince ziyaret edilmesini istediğimiz url'in zaman ayarını(frekansını) yapmak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --safe-url="www.siteadi.com" --safe-freq=3
--skip-urlencode: Test etmek istediğimiz parametrelerin url-encoding işleminden geçirilme işlemini atlamak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --skip-urlencode
--force-ssl: SSL/HTTPS bağlantısını kullanmasını zorlamak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "https://www.siteadi.com/testet.php?id=1" --force-ssl
-hpp: "HTTP Parameter Pollution" metodu ile test işlemimizi gerçekleştirmek istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?a=1&b=2&c=3" --hpp
--eval: Belirtilen python kodunu istek yapılmadan önce çalıştırıp, ardından bu sonuca göre istek yapmak istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=123&id2=456" --eval="import hashlib; id=hashlib.md5(id).hexdigest()"
Optimization Sekmesi: Sqlmap'i performans alanında optimize etmek istiyorsak kullanabileceğimiz parametrelerin bulunduğu kategorimiz.
-o: Tüm optimizasyon anahtarlarını kullanmak istiyorsak kullanabileceğimiz parametremiz. --keep-alive, --null-connection ve --threads=3 olarak default tanımlanır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" -o
--predict-output: txt/common_outputs.txt dosyası içerisindeki en çok karşımıza çıkan çıktıları tahmin ederek, test işlemimizin daha hızlı bitmesi konusunda yardımcı olur.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --predict-output
--keep-alive: Kalıcı(persistent) HTTP(s) bağlantıları kurmak için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --keep-alive
--null-connection: HTTP cevabının uzunluğunu, HTTP body'i çekmeden belirlemek için kullanılan parametremiz. Aktif edildiğinde sqlmap iki farklı NULL bağlantı tekniği ile test ve exploit işlemleri gerçekleştirir. Bunlar Range ve Head'dir. Bunlardan herhangi biri test edilen server tarafından da destekleniyorsa, işlemimizi hızlandırmamıza yardımcı olur. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --null-connection
--threads: Multi-threading ile sqlmap'in maximum kaç tane HTTP(s) isteği yapabileceğini belirlemek için kullanabileceğimiz parametremiz. Özellikle bruteforce searching işlemlerinde, aramamızı oldukça hızlandıran bu yöntem, performans sebepleri gerekçesiyle max. 10 thread kullanılması tavsiye edilmekte. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --threads=10
Injection Sekmesi: Hangi parametrelerin test edileceği, kişisel payload tanımlamaları ve tamper scriptleri tanımlamaları gibi ayarlamaları yapabileceğimiz parametrelerin bulunduğu kategorimiz.
-p: Verilen parametreler içerisinde sadece belirli parametrelerin test edilmesini istiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?username=asd&password=asd&denemeA=1&den emeB=2&denemeC=3" -p denemeA
--skip: Verilen parametreler içerisinde sadece bazı parametrelerin test edilmesini istemiyorsak kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?username=asd&password=asd&denemeA=1&den emeB=2&denemeC=3" --skip denemeA,denemeB,denemeC
--dbms: Sqlmap'e yardımcı olmak adına, eğer backend'de çalışan database management system'i biliyorsak, dbms ile tanımlayabilmekteyiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --dbms="MySql"
--os: Sqlmap'e yardımcı olmak adına, eğer işletim sistemini biliyorsak, os ile bunu da tanımlayabilmekteyiz.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --dbms="MySql" --os="Linux"
--invalid-bignum: Sqlmap'in orjinal parametre değerlerini geçersiz kılmaya çalışırken kullandığı yollara çok büyük sayıları da (Örn:999999) eklemek için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --invalid-bignum
--invalid-logical: Sqlmap'in orjinal parametre değerlerini geçersiz kılmaya çalışırken kullandığı yollara Boolen denemeleri de (Örn: id=1 AND 2=5) eklemek için kullanabileceğimiz parametrelerimiz.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --invalid-logical
--invalid-string: Sqlmap'in orjinal parametre değerlerini geçersiz kılmaya çalışırken kullandığı yollara rastgele string değerler ile (Örn: ad=xUqmnfi) eklemek için kullanabileceğimiz parametrelerimiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?ad=intelrad" --invalid-string
--no-cast: Payload casting mekanizmasını kapatır ve payloadları kısaltır. Ancak default olarak gelen ayrıcalıkları tam olarak kullanamayabiliriz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --no-cast
--no-escape: Test edeceğimiz server üzerinde "mysql_real_escape_string" ya da "magic_quotes" gibi ifadeler kullanılıyorsa, tek tınak gibi ifadelerimizi "SELECT char(102)+char(111)" gibi ifadelerle test edip, zamandan kazanmak için kullanabileceğimiz parametremizdir. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --no-escape
--prefix: Test edilecek parametreleri, payloadların önüne istediğimiz değeri ekleyerek daha da özelleştirebileceğimiz parametremizdir.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?ad=deneme" --prefix "')"
--suffix: Test edilecek parametreleri, payloadların sonuna istediğimiz değeri ekleyerek daha da özelleştirebileceğimiz parametrelerimizdir.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?ad=dememe" --suffix "')"
--tamper: Eğer kullanıcı ile back-end database arasında zayıf bir giriş kontrolü varsa injection yapılacak stringleri WAF'tan geçirebilmek amacı ile kullanılan parametremiz. Önüne alacağı parametre sqlmap klasörü içerisindeki tamper klasörü içerisinden kullanılır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --tamper="between"
Detection Sekmesi: Risk ve seviye belirleme gibi, belirleme adımlarını belirlemek için kullanabileceğimiz parametrelerimizin bulunduğu kategorimiz.
--level: 1 ile 5 arasında değerler alabilen parametremiz. 1. seviyede daha kısıtlı testler denetlenirken, 5.seviyede daha fazla payload, daha detaylı prefix ve suffixler ile zenginleştirilmiş payloadlar kullanılmaktadır. Ayrıca HTTP Cookie başlığı 2.seviyeden sonra ve HTTP User-Agent/Referer başlıkları da seviye 3'ten sonra denetlenmektedir. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --level=5
--risk: 1 ile 3 arasında değerler alabilen parametremiz. Eğer belirtilmezse default olarak 1 değerini alır. Risk 1 daha sınırlı sql cümleleri ile denetleme yapar. Risk 2'de risk 1'in üzerine heavy-query time based saldırılar da denetlemeye tabii tutulur. Risk 3'te ise ekstradan Or-based testler de eklenir.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --risk=3
--string: Sorguyu çalıştırdıktan sonra, belirlediğimiz string ile karşılaştırma yapıp, karşılaştırma varsa True olarak dönen değeri eşleştirmek için kullandığımız parametremiz.Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --string="Kullanici"
--not-string: Sorguyu çalıştırdıktan sonra, belirlediğimiz string ile karşılaştırma yapıp, karşılaştırmamız yoksa True olarak dönen değeri eşleştirmek için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --not-string="Kullanici"
--regexp: Sorguyu çalıştırdıktan sonra, belirlediğimiz regex ifade ile karşılaştırma yapıp, karşılaştırmamız varsa True olarak dönen değeri eşleştirmek için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --regexp="[0-9]{11}"
--code: HTTP sorgusu sonrası, server tarafından dönen cevaba göre (200 True ve 401 False) eşleştirmek için kullandığımız parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --code=200
--text-only: CSS,JS gibi tagleri göz ardı ederek, sadece metin içeriğine göre sayfaları karşılaştırmak için kullanabileceğimiz parametremiz. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --text-only
--titles: Sadece website başlığı baz alınarak sayfaları karşılaştırmak için kullanabileceğimiz parametremizÖrnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --titles
Techniques Sekmesi: Kullanılacak SQL Injection tekniklerini belirlemek için kullanacağımız parametrelerimizin bulunduğu kategorimiz.
--technique: Kullanılacak SQL Injection tekniklerini belirlediğimiz parametremiz. Default olarak BEUSTQ ( Bool-Based Blind, Error-Based, Union-Query Based, Stacked Query, Time-Based Blind, Inline Queries). Ancak bunlardan sadece bazılarının test için kullanılmasını istiyorsak o zaman örnek kullanımımız aşağıdaki gibi olmakta. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --technique="BEST"
--time-sec: DBMS cevabının gecikmesi için belirlenen süreyi tanımlayabileceğimiz parametremiz. Default olarak 5 tanımlıdır. Örnek olarak:
sqlmap -u "www.siteadi.com/testet.php?id=1" --time-sec=10