使用sqlmap進行sql注入

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

簡單介紹下sqlmap吧,它是一個自動化的SQL注入工具,其主要功能是掃描,發現并利用給定的URLSQL注入漏洞,目前支持的數據庫是MS-SQL,,MYSQL,ORACLEPOSTGRESQLSQLMAP采用四種獨特的SQL注入技術,分別是盲推理SQL注入,UNION查詢SQL注入,堆查詢和基于時間的SQL盲注入。其廣泛的功能和選項包括數據庫指紋,枚舉,數據庫提取,訪問目標文件系統,并在獲取完全操作權限時實行任意命令。

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

0x01

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

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

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

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

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

接著輸入,如下圖

這是判斷當前數據庫的使用者是否是dba

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

接著輸入,如下圖

這句的目的是列舉數據庫的用戶

從返回的結果看來,數據庫用戶是SA啊,這代表什么就不多說了吧

接著輸入,入下圖:

這句的目的是獲取數據庫用戶的密碼,

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

接著輸入,如下圖;

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

接著輸入,如下圖:

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

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

接著輸入

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

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

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

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

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

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

接著繼續:

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

上圖就是WC2庫里所有的表,SQLMAP導出來是CSV的格式,我們直接打開就能看到里面的數據,

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

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

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

本文轉自揚州seo由網絡安全攻防研究室(www.zzxjjy.com)信息安全小組收集整理。