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注...