天天看點

Backtrack5 SQL注入漏洞探測

SQLMAP,它是一個自動化的SQL注入工具,其主要功能是掃描,發現并利用給定的URL的SQL注入漏洞,目前支援的資料庫是MS-SQL,,MYSQL,ORACLE和POSTGRESQL。

SQLMAP采用四種獨特的SQL注入技術,分别是盲推理SQL注入,UNION查詢SQL注入,堆查詢和基于時間的SQL盲注入。其廣泛的功能和選項包括資料庫指紋,枚舉,資料庫提取,通路目标檔案系統,并在擷取完全操作權限時實行任意指令。

啟動Backtrack5,在shell裡進入/pentest/database/sqlmap路徑下

輸入./sqlmap.py即可使用sqlmap工具

我們以本地測試為例,簡單的說一下sqlmap工具的使用

啟動SQLMAP,對這個注入點進行初步的判斷和檢測,它的檢測機制在文章開頭也已經說明,啟動後,SQLMAP開始工作,并對給定的URL開始判斷,如下圖

<a href="http://blog.51cto.com/attachment/201310/105444106.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201310/105447181.png" target="_blank"></a>

我們看到猜解出來的資料庫的類型為MYSQL,同時也看到了SQLMAP的注入方法

然後我們可以判斷一下目前站點的資料庫列舉出來

<a href="http://blog.51cto.com/attachment/201310/105451851.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201310/105456116.jpg" target="_blank"></a>

我們看到有兩個資料庫,而我們實驗的是dvwa,是以猜測使用的是dvwa資料庫

然後我們查詢dvwa資料庫裡面有那些表

<a href="http://blog.51cto.com/attachment/201310/105500446.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201310/105503607.jpg" target="_blank"></a>

我們查到了兩個資料表

users表,顧名思義,應該存放着使用者的一些資訊,我們繼續查詢該資料表

<a href="http://blog.51cto.com/attachment/201310/105507406.jpg" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201310/105510870.jpg" target="_blank"></a>

在users表裡面我們看到了幾個字段,而這幾個字段有我們想要的資訊

user,passqord很關鍵,一般都是存放着賬戶和密碼的資料,我們繼續使用--

dump參數幫我們列舉猜解所有的字段資訊

<a href="http://blog.51cto.com/attachment/201310/105514116.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201310/105517504.png" target="_blank"></a>

<a href="http://blog.51cto.com/attachment/201310/105525652.jpg" target="_blank"></a>

我們看到,已經才解除了六個帳号的資訊,有使用者名和密碼,這個資料庫我被我們破解了,把所有的資訊複制下來,我們就相當于把該資料庫下載下傳了,所有的資訊都在我們手裡。

==============================================================================================================================================================

SQLMAP參數解釋

Options(選項):

--version顯示程式的版本号并退出

-h,--help顯示此幫助消息并退出

-vVERBOSE詳細級别:0-6(預設為1)

Target(目标):

以下至少需要設定其中一個選項,設定目标URL。

-dDIRECT直接連接配接到資料庫。

-uURL,--url=URL目标URL。

-lLIST從Burp或WebScarab代理的日志中解析目标。

-rREQUESTFILE從一個檔案中載入HTTP請求。

-gGOOGLEDORK處理Googledork的結果作為目标URL。

-cCONFIGFILE從INI配置檔案中加載選項。

Request(請求):

這些選項可以用來指定如何連接配接到目标URL。

--data=DATA通過POST發送的資料字元串

--cookie=COOKIEHTTPCookie頭

--cookie-urlencodeURL編碼生成的cookie注入

--drop-set-cookie忽略響應的Set-Cookie頭資訊

--user-agent=AGENT指定HTTPUser-Agent頭

--random-agent使用随機標明的HTTPUser-Agent頭

--referer=REFERER指定HTTPReferer頭

--headers=HEADERS換行分開,加入其他的HTTP頭

--auth-type=ATYPEHTTP身份驗證類型(基本,摘要或NTLM)(Basic,DigestorNTLM)

--auth-cred=ACREDHTTP身份驗證憑據(使用者名:密碼)

--auth-cert=ACERTHTTP認證證書(key_file,cert_file)

--proxy=PROXY使用HTTP代理連接配接到目标URL

--proxy-cred=PCREDHTTP代理身份驗證憑據(使用者名:密碼)

--ignore-proxy忽略系統預設的HTTP代理

--delay=DELAY在每個HTTP請求之間的延遲時間,機關為秒

--timeout=TIMEOUT等待連接配接逾時的時間(預設為30秒)

--retries=RETRIES連接配接逾時後重新連接配接的時間(預設3)

--scope=SCOPE從所提供的代理日志中過濾器目标的正規表達式

--safe-url=SAFURL在測試過程中經常通路的url位址

--safe-freq=SAFREQ兩次通路之間測試請求,給出安全的URL

Optimization(優化):

這些選項可用于優化SqlMap的性能。

-o開啟所有優化開關

--predict-output預測常見的查詢輸出

--keep-alive使用持久的HTTP(S)連接配接

--null-connection從沒有實際的HTTP響應體中檢索頁面長度

--threads=THREADS最大的HTTP(S)請求并發量(預設為1)

Injection(注入):

這些選項可以用來指定測試哪些參數,提供自定義的注入payloads和可選篡改腳本。

-pTESTPARAMETER可測試的參數(S)

--dbms=DBMS強制後端的DBMS為此值

--os=OS強制後端的DBMS作業系統為這個值

--prefix=PREFIX注入payload字元串字首

--suffix=SUFFIX注入payload字元串字尾

--tamper=TAMPER使用給定的腳本(S)篡改注入資料

Detection(檢測):

這些選項可以用來指定在SQL盲注時如何解析和比較HTTP響應頁面的内容。

--level=LEVEL執行測試的等級(1-5,預設為1)

--risk=RISK執行測試的風險(0-3,預設為1)

--string=STRING查詢時有效時在頁面比對字元串

--regexp=REGEXP查詢時有效時在頁面比對正規表達式

--text-only僅基于在文本内容比較網頁

Techniques(技巧):

這些選項可用于調整具體的SQL注入測試。

--technique=TECHSQL注入技術測試(預設BEUST)

--time-sec=TIMESECDBMS響應的延遲時間(預設為5秒)

--union-cols=UCOLS定列範圍用于測試UNION查詢注入

--union-char=UCHAR用于暴力猜解列數的字元

Fingerprint(指紋):

-f,--fingerprint執行檢查廣泛的DBMS版本指紋

Enumeration(枚舉):

這些選項可以用來列舉後端資料庫管理系統的資訊、表中的結構和資料。此外,您還可以運作您自己

的SQL語句。

-b,--banner檢索資料庫管理系統的辨別

--current-user檢索資料庫管理系統目前使用者

--current-db檢索資料庫管理系統目前資料庫

--is-dba檢測DBMS目前使用者是否DBA

--users枚舉資料庫管理系統使用者

--passwords枚舉資料庫管理系統使用者密碼哈希

--privileges枚舉資料庫管理系統使用者的權限

--roles枚舉資料庫管理系統使用者的角色

--dbs枚舉資料庫管理系統資料庫

--tables枚舉的DBMS資料庫中的表

--columns枚舉DBMS資料庫表列

--dump轉儲資料庫管理系統的資料庫中的表項

--dump-all轉儲所有的DBMS資料庫表中的條目

--search搜尋列(S),表(S)和/或資料庫名稱(S)

-DDB要進行枚舉的資料庫名

-TTBL要進行枚舉的資料庫表

-CCOL要進行枚舉的資料庫列

-UUSER用來進行枚舉的資料庫使用者

--exclude-sysdbs枚舉表時排除系統資料庫

--start=LIMITSTART第一個查詢輸出進入檢索

--stop=LIMITSTOP最後查詢的輸出進入檢索

--first=FIRSTCHAR第一個查詢輸出字的字元檢索

--last=LASTCHAR最後查詢的輸出字字元檢索

--sql-query=QUERY要執行的SQL語句

--sql-shell提示互動式SQL的shell

Bruteforce(蠻力):

這些選項可以被用來運作蠻力檢查。

--common-tables檢查存在共同表

--common-columns檢查存在共同列

User-definedfunctioninjection(使用者自定義函數注入):

這些選項可以用來建立使用者自定義函數。

--udf-inject注入使用者自定義函數

--shared-lib=SHLIB共享庫的本地路徑

Filesystemaccess(通路檔案系統):

這些選項可以被用來通路後端資料庫管理系統的底層檔案系統。

--file-read=RFILE從後端的資料庫管理系統檔案系統讀取檔案

--file-write=WFILE編輯後端的資料庫管理系統檔案系統上的本地檔案

--file-dest=DFILE後端的資料庫管理系統寫入檔案的絕對路徑

Operatingsystemaccess(作業系統通路):

這些選項可以用于通路後端資料庫管理系統的底層作業系統。

--os-cmd=OSCMD執行作業系統指令

--os-shell互動式的作業系統的shell

--os-pwn擷取一個OOBshell,meterpreter或VNC

--os-smbrelay一鍵擷取一個OOBshell,meterpreter或VNC

--os-bof存儲過程緩沖區溢出利用

--priv-esc資料庫程序使用者權限提升

--msf-path=MSFPATHMetasploitFramework本地的安裝路徑

--tmp-path=TMPPATH遠端臨時檔案目錄的絕對路徑

Windows系統資料庫通路:

這些選項可以被用來通路後端資料庫管理系統Windows系統資料庫。

--reg-read讀一個Windows系統資料庫項值

--reg-add寫一個Windows系統資料庫項值資料

--reg-del删除Windows系統資料庫鍵值

--reg-key=REGKEYWindows系統資料庫鍵

--reg-value=REGVALWindows系統資料庫項值

--reg-data=REGDATAWindows系統資料庫鍵值資料

--reg-type=REGTYPEWindows系統資料庫項值類型

General(一般):

這些選項可以用來設定一些一般的工作參數。

-tTRAFFICFILE記錄所有HTTP流量到一個文本檔案中

-sSESSIONFILE儲存和恢複檢索會話檔案的所有資料

--flush-session重新整理目前目标的會話檔案

--fresh-queries忽略在會話檔案中存儲的查詢結果

--eta顯示每個輸出的預計到達時間

--update更新SqlMap

--savefile儲存選項到INI配置檔案

--batch從不詢問使用者輸入,使用所有預設配置。

Miscellaneous(雜項):

--beep發現SQL注入時提醒

--check-payloadIDS對注入payloads的檢測測試

--cleanupSqlMap具體的UDF和表清理DBMS

--forms對目标URL的解析和測試形式

--gpage=GOOGLEPAGE從指定的頁碼使用谷歌dork結果

--page-rankGoogledork結果顯示網頁排名(PR)

--parse-errors從響應頁面解析資料庫管理系統的錯誤消息

--replicate複制轉儲的資料到一個sqlite3資料庫

--tor使用預設的Tor(Vidalia/Privoxy/Polipo)代理位址

--wizard給初級使用者的簡單向導界面

===============================================================================

     本文轉自Tar0 51CTO部落格,原文連結:http://blog.51cto.com/tar0cissp/1312227,如需轉載請自行聯系原作者