對于任意一個(gè)url廓潜,如:http://192.168.136.131/sqlmap/mysql/get_int.php?id=1
sqlmap會:
- 判斷可注入的參數(shù)
- 判斷可以用那種SQL注入技術(shù)來注入
- 識別出哪種數(shù)據(jù)庫
- 根據(jù)用戶選擇,讀取哪些數(shù)據(jù)
sqlmap支持的注入模式
- 基于布爾的盲注,根據(jù)返回頁面判斷條件真假的注入沃琅。
- 基于時(shí)間的盲注,即不能根據(jù)頁面返回內(nèi)容判斷任何信息,用條件語句查看時(shí)間延遲語句是否執(zhí)行(即頁面返回時(shí)間是否增加)來判斷。
- 基于報(bào)錯(cuò)的注入墅冷,即頁面會返回錯(cuò)誤信息,或者把注入的語句和結(jié)果直接返回在頁面中或油。
- 聯(lián)合查詢注入寞忿,可以使用union的情況下的注入。
- 堆查詢注入顶岸,可以同時(shí)執(zhí)行多條語句的執(zhí)行時(shí)注入腔彰。
Sqlmap支持的數(shù)據(jù)庫有:
MySQL,Oracle,PostgreSQL,MSSQL,SQLite, Access
-
可以提供一個(gè)簡單的URL蜕琴,Burp或WebScarab請求日志文件萍桌,文本文檔中的完整http請求或者Google的搜索宵溅,匹配出結(jié)果頁面凌简,也可以自己定義一個(gè)正則來判斷那個(gè)地址去測試。
測試GET參數(shù)恃逻,POST參數(shù)雏搂,HTTP Cookie參數(shù),HTTP User-Agent頭和HTTP Referer頭來確認(rèn)是否有SQL注入寇损,它也可以指定用逗號分隔的列表的具體參數(shù)來測試凸郑。
可以設(shè)定HTTP(S)請求的并發(fā)數(shù),來提高盲注時(shí)的效率矛市。
常用參數(shù)
-v (VERBOSE)
對一個(gè)點(diǎn)進(jìn)行嘗試判斷以及讀取數(shù)據(jù)芙沥。
共有七個(gè)等級,默認(rèn)為1:
0:只顯示python錯(cuò)誤以及嚴(yán)重的信息。
1:同時(shí)顯示基本信息和警告信息(默認(rèn))
2:同時(shí)顯示debug信息而昨。
3:同時(shí)顯示注入的payload(最好看payload測試等級)
4:同時(shí)顯示HTTP請求救氯。
5:同時(shí)顯示HTTP響應(yīng)頭。
6:同時(shí)顯示HTTP響應(yīng)頁面歌憨。
-d (director)
直接連接數(shù)據(jù)庫着憨。
-u (URL)
從Burp或者WebScarab代理中獲取日志。
格式:sqlmap -u "http://www.baidu.com"
-l (LIST)
直接把Burp或Webscabe中解析目標(biāo)务嫡,并將目標(biāo)直接導(dǎo)出到Sqlmap來檢測是否存在注入甲抖。從文本中獲取多個(gè)目標(biāo)掃描。
-level (執(zhí)行測試等級)
-g
測試Google搜索結(jié)果中的GET參數(shù)(Top100結(jié)果)
--data
用于拆分字符心铃,此參數(shù)用于POST方式提交准谚,sqlmap會像檢測GET參數(shù)一樣檢測POST的參數(shù)。
--cookie,--load-cookies,--drop-set-cookie
主要用在這兩方面:
1.web應(yīng)用需要登陸的時(shí)候去扣。
2.你想要在這些頭參數(shù)中測試SQL注入氛魁。
-p
sqlmap默認(rèn)測試所有的GET和POST參數(shù),當(dāng)--level的值大于等于2的時(shí)候也會測試HTTP Cookie頭的值厅篓,當(dāng)大于等于3的時(shí)候也會測試User-Agent和HTTP Referer頭的值秀存。但是你可以手動用-p參數(shù)設(shè)置想要測試的參數(shù)。例如: -p "id,user-anget"
當(dāng)你使用--level的值很大但是有個(gè)別參數(shù)不想測試的時(shí)候可以使用--skip參數(shù)羽氮。
--os
默認(rèn)情況下sqlmap會自動的探測數(shù)據(jù)庫服務(wù)器系統(tǒng)或链,支持的系統(tǒng)有:Linux、Windows档押。
指定無效的大數(shù)字
--dbs
當(dāng)前用戶有權(quán)限讀取所有數(shù)據(jù)看列表信息的表中的時(shí)候澳盐,即可列出一個(gè)特定數(shù)據(jù)的所有表。
--dump令宿,-C叼耙,-T,-D,--start
如果當(dāng)前管理員有權(quán)限讀取數(shù)據(jù)庫其中的一個(gè)表,那么就能獲取整個(gè)表中的所有內(nèi)容粒没。
-T,-D參數(shù)指定想要獲取哪個(gè)庫的哪個(gè)表筛婉,不適用-D參數(shù)是,默認(rèn)使用當(dāng)前庫癞松。
--common-tables
暴力破解表名爽撒,當(dāng)--tables無法獲取到數(shù)據(jù)庫表時(shí),使用該參數(shù)破解响蓉,同理用于破解列名硕勿。
當(dāng):
1、MySQL數(shù)據(jù)庫版本小于5.0枫甲,沒有information_schema表源武。
2扼褪、數(shù)據(jù)庫是Microssoft Access,系統(tǒng)表MSysObjects是不可讀的(默認(rèn))粱栖。
3迎捺、當(dāng)前用戶沒有權(quán)限讀取系統(tǒng)中保存數(shù)據(jù)結(jié)構(gòu)的表的權(quán)限。
--file-read
從服務(wù)器中讀取文件查排。當(dāng)數(shù)據(jù)庫為MySQL,PostgreSQL, MSSQL時(shí)凳枝,并當(dāng)前用戶有權(quán)使用特定的函數(shù)(以下情況均在該條件下),讀取文件可以是文本也可以是二進(jìn)制文件跋核。
--file-write,--file-dest
把文件上傳到數(shù)據(jù)庫服務(wù)器中岖瑰。
--os-cmd,--os-shell
運(yùn)行任意操作系統(tǒng)命令。包含用戶自定義函數(shù)sys_exec()和sys_eval()等砂代。
如有錯(cuò)誤蹋订,請私信我修改,謝謝刻伊。