轉載:Sqlmap爆庫命令的簡單使用

轉載://blog.csdn.net/qq_41617034/article/details/89502428

測試地址:因為涉及商業隱私,這裡就不列啦

我這裡用的是windows,並沒有用kali,所以需要使用sqlmap.py

1.Sqlmap.py -u "網址"   網址存在注入點

在這裡插入圖片描述
可以看出有三個注入點,底下還有其他系統或資料庫資訊

2.曝出資料庫名稱
--dbs

在這裡插入圖片描述
可以看出有三個資料庫

3.查看web當前使用的資料庫
--current -db

在這裡插入圖片描述

4.曝出web資料庫使用賬戶
    --current -user

在這裡插入圖片描述

  5.列出資料庫所有賬戶
    --users

沒截…

  6.曝出資料庫帳號和密碼
    --passwords

沒截…

7.列出資料庫中的表
-D XX --tables
(-D:指定資料庫名稱
XX:資料庫名稱
--tables:列出該資料庫的表)

在這裡插入圖片描述

8.列出表中的欄位
-D XX -T YY --columns
(-D指資料庫名稱
XX指資料庫
-T指要列出欄位的表
YY指資料庫中的表
--columns指欄位)

在這裡插入圖片描述

9.曝欄位內容
-D XX -T YY -C 」a,b,c」 --dump
(-D指資料庫名稱
XX指資料庫
-T指要列出欄位的表
YY指資料庫中的表
-C指定要曝的欄位
--dump將結果導出)

在這裡插入圖片描述

參考文檔://octobug.gitbooks.io/sqlmap-wiki-zhcn/content/Users-manual/Download-and-update.html

下載更新

sqlmap基於python2的環境的,所以安裝sqlmap之前首先需要配好python的環境,sqlmap的部分漏洞利用功能依賴於 Metasploit框架。你可以從這裡獲取Metasploit框架,版本要求是3.5或者更高版本。對於ICMP隧道入侵技術,sqlmap需要 Impacket 依賴包。
需要攻擊或者繞過對應的資料庫就需要安裝對應的鏈接數據包,這個是需要注意的。
下載地址

git clone //github.com/sqlmapproject/sqlmap.git sqlmap-dev

更新

python sqlmap.py --update

sqlmap中文用法指南

用法:python sqlmap.py [選項]

選項:
  -h, --help            顯示基本幫助資訊並退出
  -hh                   顯示高級幫助資訊並退出
  --version             顯示程式版本資訊並退出
  -v VERBOSE            輸出資訊詳細程度級別:0-6(默認為 1)

  目標:
      至少提供一個以下選項以指定目標

    -d DIRECT           直接連接資料庫
    -u URL, --url=URL   目標 URL(例如:"//www.site.com/vuln.php?id=1")
    -l LOGFILE          從 Burp 或 WebScarab 代理的日誌文件中解析目標地址
    -x SITEMAPURL       從遠程網站地圖(.xml)文件中解析目標
    -m BULKFILE         從文本文件中獲取批量目標
    -r REQUESTFILE      從文件中讀取 HTTP 請求
    -g GOOGLEDORK       使用 Google dork 結果作為目標
    -c CONFIGFILE       從 INI 配置文件中載入選項

  請求:
      以下選項可以指定連接目標地址的方式

    --method=METHOD     強制使用提供的 HTTP 方法(例如:PUT)
    --data=DATA         使用 POST 發送數據串
    --param-del=PARA..  設置參數值分隔符
    --cookie=COOKIE     指定 HTTP Cookie 
    --cookie-del=COO..  設置 cookie 分隔符
    --load-cookies=L..  指定以 Netscape/wget 格式存放 cookies 的文件
    --drop-set-cookie   忽略 HTTP 響應中的 Set-Cookie 參數
    --user-agent=AGENT  指定 HTTP User-Agent
    --random-agent      使用隨機的 HTTP User-Agent
    --host=HOST         指定 HTTP Host
    --referer=REFERER   指定 HTTP Referer
    -H HEADER, --hea..  設置額外的 HTTP 頭參數(例如:"X-Forwarded-For: 127.0.0.1")
    --headers=HEADERS   設置額外的 HTTP 頭參數(例如:"Accept-Language: fr\nETag: 123")
    --auth-type=AUTH..  HTTP 認證方式(Basic,Digest,NTLM 或 PKI)
    --auth-cred=AUTH..  HTTP 認證憑證(username:password)
    --auth-file=AUTH..  HTTP 認證 PEM 證書/私鑰文件
    --ignore-code=IG..  忽略 HTTP 錯誤碼(例如:401)
    --ignore-proxy      忽略系統默認代理設置
    --ignore-redirects  忽略重定向嘗試
    --ignore-timeouts   忽略連接超時
    --proxy=PROXY       使用代理連接目標 URL
    --proxy-cred=PRO..  使用代理進行認證(username:password)
    --proxy-file=PRO..  從文件中載入代理列表
    --tor               使用 Tor 匿名網路
    --tor-port=TORPORT  設置 Tor 代理埠代替默認埠
    --tor-type=TORTYPE  設置 Tor 代理方式(HTTP,SOCKS4 或 SOCKS5(默認))
    --check-tor         檢查是否正確使用了 Tor
    --delay=DELAY       設置每個 HTTP 請求的延遲秒數
    --timeout=TIMEOUT   設置連接響應的有效秒數(默認為 30)
    --retries=RETRIES   連接超時時重試次數(默認為 3)
    --randomize=RPARAM  隨機更改給定的參數值
    --safe-url=SAFEURL  測試過程中可頻繁訪問且合法的 URL 地址(譯者註:
                        有些網站在你連續多次訪問錯誤地址時會關閉會話連接,
                        後面的「請求」小節有詳細說明)
    --safe-post=SAFE..  使用 POST 方法發送合法的數據
    --safe-req=SAFER..  從文件中載入合法的 HTTP 請求
    --safe-freq=SAFE..  每訪問兩次給定的合法 URL 才發送一次測試請求
    --skip-urlencode    不對 payload 數據進行 URL 編碼
    --csrf-token=CSR..  設置網站用來反 CSRF 攻擊的 token
    --csrf-url=CSRFURL  指定可提取反 CSRF 攻擊 token 的 URL
    --force-ssl         強制使用 SSL/HTTPS
    --hpp               使用 HTTP 參數污染攻擊
    --eval=EVALCODE     在發起請求前執行給定的 Python 程式碼(例如:
                        "import hashlib;id2=hashlib.md5(id).hexdigest()")

  優化:
    以下選項用於優化 sqlmap 性能

    -o                  開啟所有優化開關
    --predict-output    預測常用請求的輸出
    --keep-alive        使用持久的 HTTP(S) 連接
    --null-connection   僅獲取頁面大小而非實際的 HTTP 響應
    --threads=THREADS   設置 HTTP(S) 請求並發數最大值(默認為 1)

  注入:
    以下選項用於指定要測試的參數,
    提供自定義注入 payloads 和篡改參數的腳本

    -p TESTPARAMETER    指定需要測試的參數
    --skip=SKIP         指定要跳過的參數
    --skip-static       指定跳過非動態參數
    --param-exclude=..  用正則表達式排除參數(例如:"ses")
    --dbms=DBMS         指定 DBMS 類型(例如:MySQL)
    --dbms-cred=DBMS..  DBMS 認證憑據(username:password)
    --os=OS             指定 DBMS 伺服器的作業系統類型
    --invalid-bignum    將無效值設置為大數
    --invalid-logical   對無效值使用邏輯運算
    --invalid-string    對無效值使用隨機字元串
    --no-cast           關閉 payload 構造機制
    --no-escape         關閉字元串轉義機制
    --prefix=PREFIX     注入 payload 的前綴字元串
    --suffix=SUFFIX     注入 payload 的後綴字元串
    --tamper=TAMPER     用給定腳本修改注入數據

  檢測:
    以下選項用於自定義檢測方式

    --level=LEVEL       設置測試等級(1-5,默認為 1)
    --risk=RISK         設置測試風險等級(1-3,默認為 1)
    --string=STRING     用於確定查詢結果為真時的字元串
    --not-string=NOT..  用於確定查詢結果為假時的字元串
    --regexp=REGEXP     用於確定查詢結果為真時的正則表達式
    --code=CODE         用於確定查詢結果為真時的 HTTP 狀態碼
    --text-only         只根據頁面文本內容對比頁面
    --titles            只根據頁面標題對比頁面

  技術:
    以下選項用於調整特定 SQL 注入技術的測試方法

    --technique=TECH    使用的 SQL 注入技術(默認為「BEUSTQ」,譯者註:
                        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(時間型盲注)
                        Q: inline Query injection(內聯查詢注入)
    --time-sec=TIMESEC  延遲 DBMS 的響應秒數(默認為 5)
    --union-cols=UCOLS  設置聯合查詢注入測試的列數目範圍
    --union-char=UCHAR  用於暴力猜解列數的字元
    --union-from=UFROM  設置聯合查詢注入 FROM 處用到的表
    --dns-domain=DNS..  設置用於 DNS 滲出攻擊的域名(譯者註:
                        推薦閱讀《在SQL注入中使用DNS獲取數據》
                        //cb.drops.wiki/drops/tips-5283.html,
                        在後面的「技術」小節中也有相應解釋)
    --second-order=S..  設置二階響應的結果顯示頁面的 URL(譯者註:
                        該選項用於二階 SQL 注入)

  指紋識別:
    -f, --fingerprint   執行廣泛的 DBMS 版本指紋識別

  枚舉:
      以下選項用於獲取後端資料庫管理系統的資訊,結構和數據表中的數據。
      此外,還可以運行你輸入的 SQL 語句

    -a, --all           獲取所有資訊、數據
    -b, --banner        獲取 DBMS banner
    --current-user      獲取 DBMS 當前用戶
    --current-db        獲取 DBMS 當前資料庫
    --hostname          獲取 DBMS 伺服器的主機名
    --is-dba            探測 DBMS 當前用戶是否為 DBA(資料庫管理員)
    --users             枚舉出 DBMS 所有用戶
    --passwords         枚舉出 DBMS 所有用戶的密碼哈希
    --privileges        枚舉出 DBMS 所有用戶特權級
    --roles             枚舉出 DBMS 所有用戶角色
    --dbs               枚舉出 DBMS 所有資料庫
    --tables            枚舉出 DBMS 資料庫中的所有表
    --columns           枚舉出 DBMS 表中的所有列
    --schema            枚舉出 DBMS 所有模式
    --count             獲取數據表數目
    --dump              導出 DBMS 資料庫表項
    --dump-all          導出所有 DBMS 資料庫表項
    --search            搜索列,表和/或資料庫名
    --comments          獲取 DBMS 注釋
    -D DB               指定要枚舉的 DBMS 資料庫
    -T TBL              指定要枚舉的 DBMS 數據表
    -C COL              指定要枚舉的 DBMS 數據列
    -X EXCLUDECOL       指定要排除的 DBMS 數據列
    -U USER             指定枚舉的 DBMS 用戶
    --exclude-sysdbs    枚舉所有數據表時,指定排除特定系統資料庫
    --pivot-column=P..  指定主列
    --where=DUMPWHERE   在轉儲表時使用 WHERE 條件語句
    --start=LIMITSTART  指定要導出的數據表條目開始行數
    --stop=LIMITSTOP    指定要導出的數據表條目結束行數
    --first=FIRSTCHAR   指定獲取返回查詢結果的開始字元位
    --last=LASTCHAR     指定獲取返回查詢結果的結束字元位
    --sql-query=QUERY   指定要執行的 SQL 語句
    --sql-shell         調出互動式 SQL shell
    --sql-file=SQLFILE  執行文件中的 SQL 語句

  暴力破解:
    以下選項用於暴力破解測試

    --common-tables     檢測常見的表名是否存在
    --common-columns    檢測常用的列名是否存在

  用戶自定義函數注入:
    以下選項用於創建用戶自定義函數

    --udf-inject        注入用戶自定義函數
    --shared-lib=SHLIB  共享庫的本地路徑

  訪問文件系統:
    以下選項用於訪問後端資料庫管理系統的底層文件系統

    --file-read=RFILE   讀取後端 DBMS 文件系統中的文件
    --file-write=WFILE  寫入後端 DBMS 文件系統中的文件
    --file-dest=DFILE   使用文件絕對路徑寫入到後端 DBMS

  訪問作業系統:
    以下選項用於訪問後端資料庫管理系統的底層作業系統

    --os-cmd=OSCMD      執行作業系統命令
    --os-shell          調出互動式作業系統 shell
    --os-pwn            調出 OOB shell,Meterpreter 或 VNC
    --os-smbrelay       一鍵調出 OOB shell,Meterpreter 或 VNC
    --os-bof            利用存儲過程的緩衝區溢出
    --priv-esc          資料庫進程用戶提權
    --msf-path=MSFPATH  Metasploit 框架的本地安裝路徑
    --tmp-path=TMPPATH  遠程臨時文件目錄的絕對路徑

  訪問 Windows 註冊表:
    以下選項用於訪問後端資料庫管理系統的 Windows 註冊表

    --reg-read          讀取一個 Windows 註冊表鍵值
    --reg-add           寫入一個 Windows 註冊表鍵值數據
    --reg-del           刪除一個 Windows 註冊表鍵值
    --reg-key=REGKEY    指定 Windows 註冊表鍵
    --reg-value=REGVAL  指定 Windows 註冊表鍵值
    --reg-data=REGDATA  指定 Windows 註冊表鍵值數據
    --reg-type=REGTYPE  指定 Windows 註冊表鍵值類型

  通用選項:
    以下選項用於設置通用的參數

    -s SESSIONFILE      從文件(.sqlite)中讀入會話資訊
    -t TRAFFICFILE      保存所有 HTTP 流量記錄到指定文本文件
    --batch             從不詢問用戶輸入,使用默認配置
    --binary-fields=..  具有二進位值的結果欄位(例如:"digest")
    --check-internet    在訪問目標之前檢查是否正常連接互聯網
    --crawl=CRAWLDEPTH  從目標 URL 開始爬取網站
    --crawl-exclude=..  用正則表達式篩選爬取的頁面(例如:"logout")
    --csv-del=CSVDEL    指定輸出到 CVS 文件時使用的分隔符(默認為「,」)
    --charset=CHARSET   指定 SQL 盲注字符集(例如:"0123456789abcdef")
    --dump-format=DU..  導出數據的格式(CSV(默認),HTML 或 SQLITE)
    --encoding=ENCOD..  指定獲取數據時使用的字元編碼(例如:GBK)
    --eta               顯示每個結果輸出的預計到達時間
    --flush-session     清空當前目標的會話文件
    --forms             解析並測試目標 URL 的表單
    --fresh-queries     忽略存儲在會話文件中的查詢結果
    --har=HARFILE       將所有 HTTP 流量記錄到一個 HAR 文件中
    --hex               獲取數據時調用 DBMS 的 hex 函數
    --output-dir=OUT..  自定義輸出目錄路徑
    --parse-errors      從響應中解析並顯示 DBMS 錯誤資訊
    --save=SAVECONFIG   將選項設置保存到一個 INI 配置文件
    --scope=SCOPE       用正則表達式從提供的代理日誌中過濾目標
    --test-filter=TE..  根據 payloads 和/或標題(例如:ROW)選擇測試
    --test-skip=TEST..  根據 payloads 和/或標題(例如:BENCHMARK)跳過部分測試
    --update            更新 sqlmap

  其他選項:
    -z MNEMONICS        使用短助記符(例如:「flu,bat,ban,tec=EU」)
    --alert=ALERT       在找到 SQL 注入時運行 OS 命令
    --answers=ANSWERS   設置問題答案(例如:「quit=N,follow=N」)
    --beep              出現問題提醒或在發現 SQL 注入時發出提示音
    --cleanup           指定移除 DBMS 中的特定的 UDF 或者數據表
    --dependencies      檢查 sqlmap 缺少什麼(非核心)依賴
    --disable-coloring  關閉彩色控制台輸出
    --gpage=GOOGLEPAGE  指定頁碼使用 Google dork 結果
    --identify-waf      針對 WAF/IPS/IDS 保護進行徹底的測試
    --mobile            使用 HTTP User-Agent 模仿智慧手機
    --offline           在離線模式下工作(僅使用會話數據)
    --purge-output      安全地刪除輸出目錄的所有內容
    --skip-waf          跳過啟發式檢測 WAF/IPS/IDS 保護
    --smart             只有在使用啟發式檢測時才進行徹底的測試
    --sqlmap-shell      調出互動式 sqlmap shell
    --tmp-dir=TMPDIR    指定用於存儲臨時文件的本地目錄
    --web-root=WEBROOT  指定 Web 伺服器根目錄(例如:"/var/www")
    --wizard            適合初級用戶的嚮導介面