第1章 在windows系統中通過sqlmap注入
1.1 環境搭建
Sqlmap是目前功能最強大,使用最為廣泛的注入類工具,是一個開源軟件,被集成於kaliLinux,
由於sqlmap是基於Python編寫,所以需要在系統中先安裝好2.7.x版本的Python,然后將下載好的sqlmap放在Python2.7目錄下,這里Python安裝我就不一一截圖了,因為都是使用默認安裝,只是安裝的時候根據需要可以修改下安裝路徑。
在Windows下首先把下載好的sqlmap放在Python路徑下

然后我們在此路徑下運行sqlmap.py,可以看到可以成功訪問sqlmap,以及顯示出了版本號

那么我們在kali中直接輸入sqlmap就可以了

如果需單獨查詢版本號,我們需要在后面加一個--version

以上就我們的環境就搭建好啦!
現在就可以開始注入啦!
1.2 注入過程
首先我們在windows系統中,查找下本地的ip

再開一下phpstudy服務

訪問url成功,然后復制到sqlmap運行

1.2.1 判斷注入類型
在sqlmap下運行
這里的-u是運行指定的url,-u是選項,后面的是參數。這里需要注意的是后面指定的內容需要用雙引號引起來。
我們輸入命令后就開始檢測了,如下圖所示。

檢測過程中會出現很多提示,我們挨着來看一下

這句話問的是:看起來后端DBMS是“MySQL”。是否要跳過選擇其他DBMS的特定測試有效負載?[是/否],這里可以看到Y是大寫,大寫就是默認值,我們這里手動選擇n,然后回車。

這句話問的是:對於其余的測試,是否要包括對“MySQL”擴展提供的級別(1)和風險(1)值的所有測試?[是/否],這里我們還是選擇n然后回車。
這里我們就要注意看下面這個提示了,Vulnerable是可被入侵的,看到它我們得兩眼發亮,也就是說這個id是個注入點,可進行注入,問我們想想繼續其他參數的測試嗎?[是/否],這里我們就默認是n,直接回車。

我們可以看到輸出結果顯示sqlmap用總共45個HTTP<s請求標識了以下注入點:

上面結果顯示還可以看到顯示的數據庫類型是mysql數據庫。
以上我們就判斷出來了注入點!
我們知道了數據庫是mysql,我們就可以開始查看數據庫的內容了。
1.2.2 查看數據庫的表












以上就是我們查看到的關於mysql數據庫里面的所有數據表,有點多哈。我們也可以在sqlmap路徑下查看存放的表的內容

在利用sqlmap進行檢測的時候,需要注意的是,每次在sqlmap檢測一次就會自動保存本次的結果,當下次再執行同樣的命令的時候,直接會出現之前已經檢測出來的結果,而不會反復進行檢測。那么有人會問了,那我就想讓它重新檢測怎么辦??那么我們把之前保存的檢測結果刪掉就可以了,那么結果保存在哪?看下面圖:

如果在c盤用戶下沒有看到,很有可能就是你的文件被設置成隱藏了。解決辦法如下圖所示:

好啦!我們現在再用windows系統檢測下一步!前面我們已經在windows中猜出我們的表名了,那么現在呢?
那肯定是猜表的字段啦!
1.2.3 查看數據庫表的字段

輸出結果顯示:


由上圖結果顯示我們可以看到,這個猜解表名的字段直接猜會顯示所有表的字段,我們也可以直接選擇猜解我們指定的表的字段

輸出結果顯示

我們在上圖看到users這個表中,有username和password,也就是用戶名和密碼,接下來當然是爆出它們的內容啦!
1.2.4 查看表的字段內容
輸入:

解釋:-C 指定字段的名字,-T指定表的名字,--dump獲得數據庫指定字段的內容。
輸出結果:

我們用windows做出來了!真棒!
第2章 在kali中通過sqlmap注入
2.1 環境搭建
因為kaliLinux里本身帶有Python2.7和sqlmap,所以可以直接使用,不需要搭建環境,是不是很棒呀!
2.2 注入過程
前面我們知道在windows系統中注入過程和結果會自動保存在文件夾,那么在kali中是保存在哪個地方呢?
首先我們在kali中輸入ls查看目錄

可以看到沒有.sqlmap文件耶,
那也就是上面我們說的很有可能是隱藏文件。
那么我們就輸入ls –a試一下查看隱藏文件

是不是比上面的要多一些文件了?沒錯!
但是,emmm..好像沒有.sqlmap這個文件,為什么呢?
我們直接查找這個文件試一下?很顯然,真的沒有!

這是為什么呢?我們沒有在kali中做過檢測當然沒有啦!
好吧,我們在kali中做一下前面在windows中做的
2.2.1 檢測是否是注入點

在這里跟在windows中差不多,然后我們看一下提示

第一個提示:判斷出來數據庫是mysql,問是否需要繼續檢測是其他類型,我們不需要再檢測,按y
第二個提示:為了繼續檢測,問是否想使用默認的安全級別1和風險級別1嗎?我們使用默認是就可以了,直接回車

上面這個這個提示是檢測到id是存在可注入的情況,問是否需要檢測其他的注入類型,這里我們就不需要了,直接回車,然后我們看一下輸出結果,顯示的就是盲注類型,跟我們在windows中檢測的結果是一樣的

2.2.2 檢測mysql中包含的數據庫

檢測出當前所有數據庫,輸出結果顯示為六條數據庫

2.2.3 檢測當前正在使用的數據庫

輸出結果顯示為當前使用的數據庫是security

2.2.4 檢測當前正在使用的用戶

輸出結果顯示當前用戶為root@localhost

2.2.5 判斷當前用戶是否為數據庫管理員

輸出結果顯示ture,說明當前用戶是數據庫管理員

2.2.6 查看數據庫中所有的表

輸出結果顯示數據庫中有101個表,這里我就不一一截圖了

我們也可以來kali中看看字典文件存放在哪里。

由上圖我們可以看到大部分軟件都安裝在usr/share下
然后我們現在查找一下kali中的sqlmap放在哪里:
輸入cd返回到根目錄

查看sqlmap的目錄路徑

進入到目錄下查看存放表名的txt文件

用vim編輯器打開存放表文件


也可在表中進行一個編輯,此處添加manage_user,按下-o在下一行進行插入。

好的,在上圖中我們在kali中已經查找到我們的表的文件位置了
2.2.7 檢測指定數據庫security中的表

輸出結果顯示security數據庫中有4個表

2.2.8 檢測表users中的字段

輸出結果顯示

2.2.9 爆出字段內容

輸出結果顯示:

那么我們現在已經利用kali都做了爆字段內容了,現在再嘗試下查看隱藏文件呢??

哇撒!有了!那么我們進入到這個文件夾下看看

是不是有了!哈哈,成功了!
