使用sqlmap進行sql注入

zm_21發表於2014-05-28

早就聽說BT5sqlmap功能很強大,今天終於下決心拒絕DOTA和蒼老師的誘惑,靜下心來研究研究這個傳說中的sqlmap!由於在虛擬機器裡面用的蛋疼,我直接在真機上也裝了個BT5的系統,嘻嘻··,那感覺,真是流暢啊,各種不卡!

簡單介紹下sqlmap吧,它是一個自動化的SQL隱碼攻擊工具,其主要功能是掃描,發現並利用給定的URL的SQL隱碼攻擊漏洞,目前支援的資料庫是MS-SQL,,MYSQL,ORACLE和POSTGRESQL。SQLMAP採用四種獨特的SQL隱碼攻擊技術,分別是盲推理SQL隱碼攻擊,UNION查詢SQL隱碼攻擊,堆查詢和基於時間的SQL盲注入。其廣泛的功能和選項包括資料庫指紋,列舉,資料庫提取,訪問目標檔案系統,並在獲取完全操作許可權時實行任意命令。

今天是用BT5下的sqlmap對一個真實的站進行一系列的操作,環境嘛就是bt5,+sqlmap,在操作之前我把所有的軟體全部更新了一下,由於很久沒進入真機上的bt5系統,所以更新了很久,提醒下,高版本的python與sqlmap貌似相容有問題,建議使用穩定版本的python+sqlmap,好了,下面進入正題!

0×01
很多朋友在使用bt5裡的工具的時候經常為找不到哪個地方而煩躁,還有那些複雜的路徑名,誰記得住啊,建議使用ALT+F2,在彈出的欄目裡輸入你想要使用的工具就可以了,如下圖。

 

讓我們看看sqlmap的說明,好長啊,這也說明了這個工具的複雜性和強大性,配合各種引數,能完成我們想要實現的效果

 

根據SQLMAP的說明,它是發現並利用給定的URL的SQL隱碼攻擊漏洞,所以我們要先發現一個可以注入的URL,怎麼找··大家發揮想象了,今天主要介紹SQLMAP的一些功能。

 

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

 

已經判斷出目標的系統和資料庫型別,從上圖也可以清楚的看出SQLMAP的判斷方法

接著輸入,如下圖

 

這是判斷當前資料庫的使用者是否是dba,

 

根據顯示的結果看出,當前使用者就是DBA··

接著輸入,如下圖

 

這句的目的是列舉資料庫的使用者

 

從返回的結果看來,資料庫使用者是SA啊,這代表什麼就不多說了吧

接著輸入,入下圖:

 

這句的目的是獲取資料庫使用者的密碼,

 

SA的HASH密碼已經顯示出來,而且它還有解密的模組,你如果選擇Y,它就會載入自己的解密字典,這裡雖然沒有解出來,但是把密碼的結構顯示的很明白,什麼頭部啊,混合的部分啊,都很明白,如下圖

 

接著輸入,如下圖;

 

這是判斷當前的許可權,結果如下:

 

接著輸入,如下圖:

 

這句的目的是將所有的資料庫列出來,結果如下:

 

但是這兒我沒有發現與管理有關的庫,算了吧,今天主要講講如何對庫裡的資料進行查詢,

接著輸入

 

這是顯示WC2表的所有表,如下:

 

已經把所有的表都顯示出來了,我們隨便找一個表,查詢列

 

我們找的是DBO.BZJ_FFMX表的內容,如下

 

把列名,和型別顯示出來,接著查詢列的內容,如下:

 

這裡是查詢第2到第4行的內容,顯示如下:

 

如果我們找到管理員資訊的表了,這兒不就找到對應的賬號和密碼了嗎!

接著繼續:

 

這兒我們將所有的庫匯出來,我想這就是前段時間盛傳的脫褲吧,在執行這項操作的時候,會把所有的表裡的內容匯入到當前的一個目錄下,看著清楚明瞭,但是花費的時間和很長。

 

上圖就是WC2庫裡所有的表,SQLMAP匯出來是CSV的格式,我們直接開啟就能看到裡面的資料,

 

要在SQLMAP裡執行命令就用—OS-CMD=命令就可以了

好了,演示就到這兒了,很基礎的科普,今天弄了一天的這個,發覺這個工具真的蠻強大的,有一點需要注意,之前我用穿山甲對這個站進行過掃描和執行命令,我用SQLMAP到處表的時候,發現了一個pangolin_test_table,這個應該就是穿山甲執行命令建的那個臨時表,但是沒有刪除,如果精明的管理員發現的話,一定會有所察覺的!今天我寫這個也是個拋磚引玉的作用,希望更多的人一起探討交流BT5的使用!

對sqlmap感興趣可以參考:《sqlmap使用者手冊》或者實戰文章《滲透126網盤過程》及強大的繞過waf教程《如何使用SQLMap繞過WAF》

本文來自: 網路安全攻防研究室(www.91ri.org) 請尊重作者,轉載時帶上版權資訊。 詳細內容請參考:http://www.91ri.org/3574.html

相關文章