sqlmap tamper指令碼 sqlmap 詳解

2021-10-11 03:26:07 字數 3526 閱讀 8160

sqlmap是一款非常強大的sql注入工具。

簡介

sqlmap支援以下五種不同的注入模式:

1、基於布林的盲注,即可以根據返回頁面判斷條件真假的注入。

2、基於時間的盲注,即不能根據頁面返回內容判斷任何資訊,用條件語句檢視時間延遲語句是否執行(即頁面返回時間是否增加)來判斷。

3、基於報錯注入,頁面會返回錯誤資訊,或者把注入的語句的結果直接返回在頁面中。

4、聯合查詢注入,可以使用聯盟的情況下的注入。

5、堆查詢注入,可以同時執行多條語句的執行時的注入。

sqlmap是開源的自動化sql注入工具,由python寫成,具有如下特點:

完全支援mysql,甲骨文,postgresql, microsoft sql server, microsoft access, ibm db2, sqlite,火鳥,sybase, sap maxdb, hsqldb和informix等多種資料庫管理系統。

更新

python sqlmap.py --update ——更新

檢測注入

基本格式

sqlmap -u "

-u 制定url

sqlmap -u " –dbms mysql –level 2

指定資料庫型別為mysql,級別為3(共5級,級別越高,檢測越全面)

一共有5級,5級最高,預設為1級,

1-5 :get和post

從post資料報中注入

sqlmap -u "" --method post --data "id=1$passwd=123456" -p id

--method post:指定提交方式為post

--data:指定提交的資料

-p:指定sql注入payload測試的引數

cookie注入

sqlmap -u "" -p "id" -–cookie –level 2

http頭注入

sqlmap -r "1.txt"

-r:將http頭資訊儲存到檔案,進行測試

批量掃瞄注入點

sqlmap -r 1.txt --batch

-m: 批量掃瞄多個注入點

--batch:自動選擇yes,防止中斷,不需要人工手動每次都選擇yes,no。

注入成功:

獲取資料庫基本資訊

sqlmap.py -u "" -p id --dbms mysql --dbs 獲取資料庫

sqlmap.py -u "" -p id --dbms mysql --current-db

檢視當前執行的資料庫

sqlmap.py -u "" -p id --dbms mysql -d my7531691 --tables

獲取資料庫中的表

sqlmap.py -u "" -p id --dbms mysql -d my7531691 -t admuser --columns

獲取字段

sqlmap.py -u "" -p id --dbs mysql -d my7531691 -t admuser --dump

常用命令:

–is-dba 當前使用者許可權(是否為root許可權)

–dbs 所有資料庫

–current-db **當前資料庫

–users 所有資料庫使用者

–current-user 當前資料庫使用者

–passwords 資料庫密碼

options(選項):

–version 顯示程式的版本號並退出

-h, –help 顯示此幫助訊息並退出

-v verbose 詳細級別:0-6(預設為1)

target(目標):

-d direct 直接連線到資料庫。

-u 目標url

-r requestfile 從乙個檔案中載入http請求

request(請求):

這些選項可以用來指定如何連線到目標url。

–data=data 通過post傳送的資料字串

–cookie=cookie http cookie頭

–user-agent=agent 指定 http user – agent頭

–random-agent 使用隨機選定的http user – agent頭

–referer=referer 指定 http referer頭

enumeration(列舉):

–current-user 檢索資料庫管理系統當前使用者

–current-db 檢索資料庫管理系統當前資料庫

–is-dba 檢測dbms當前使用者是否dba

–users 列舉資料庫管理系統使用者

–passwords 列舉資料庫管理系統使用者密碼雜湊

–privileges 列舉資料庫管理系統使用者的許可權

–roles 列舉資料庫管理系統使用者的角色

–dbs 列舉資料庫管理系統資料庫

-d dbname 要進行列舉的指定資料庫名

-t tblname 要進行列舉的指定資料庫表(如:-t tablename –columns)

–tables 列舉的dbms資料庫中的表

–columns 列舉dbms資料庫表列

–dump 轉儲資料庫管理系統的資料庫中的表項

–dump-all 轉儲所有的dbms資料庫表中的條目

-u user 用來進行列舉的資料庫使用者

–sql-query=query 要執行的sql語句

–sql-shell 提示互動式sql的shell

optimization(優化):

這些選項可用於優化sqlmap的效能。

-o 開啟所有優化開關

injection(注入):

這些選項可以用來指定測試哪些引數, 提供自定義的注入payloads和可選篡改指令碼。

-p testparameter 可測試的引數(s)

–dbms=dbms 強制後端的dbms為此值

–os=os 強制後端的dbms作業系統為這個值

–tamper=tamper 使用給定的指令碼(s)篡改注入資料

detection(檢測):

這些選項可以用來指定在sql盲注時如何解析和比較http響應頁面的內容。

–level=level 執行測試的等級(1-5,預設為1)

–risk=risk 執行測試的風險(0-3,預設為1)

定製sqlmap tamper指令碼

滲透測試過程中遇到注入點常常丟到sqlmap中進行測試,假如 有waf,sqlmap便無法直接注入了。在測試某個專案的過程中,乙個頁面的aid引數,習慣性的提交 and 1 1發現直接403了。測試了其他的一些引數,發現過濾了大部分的注入命令,但是可以利用mysql的注釋方法進行繞過,例如 會攔截s...

sqlmap Tamper指令碼編寫

sqlmap是乙個自動化的sql注入工具,其主要功能是掃瞄,發現並利用給定的url的sql注入漏洞,目前支援的資料庫是mysql,oracle,postgresql,microsoft sql server,microsoft access,ibm db2,sqlite,firebird,sybas...

sqlmap tamper 編寫練習

time 2018 11 21 大家應該都知道,sqlmap是一款注入神器,大多數遇到的sql注入都可以用它來搞定,而且他是開源的,因此我們也可以編寫一些tamper來應對遇到的問題,因為自己寫指令碼注入實在是太慢了ummmmm 這裡的話,就借用前兩天在湖湘杯中遇到的環境,因為比賽的時候有down注...