SQLmap命令的介紹

QLmap這個工具的使用。(結尾有彩蛋)正則表達式

URL--->sql

判斷注入的參數,shell

判斷是使用的那種SQL注入數據庫

識別出那種數據庫後端

根據用戶的選擇,讀出數據安全


五種注入模式--->cookie

  1. 基於時間的盲注,即不能根據頁面的返回內容判斷任何信息,用條件語句產看時間延遲語句是否執行,即頁面會返回錯誤信息,或者把注入的語句結果返回在頁面中。session

  2. 基於布爾的盲注,便可以根據頁面判斷條件的真假的注入。併發

  3. 基於報錯注入,即頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中。oracle

  4. 聯合查詢注入,可使用union的狀況下能夠注入。

  5. 堆查詢注入,能夠同事執行多條語句的執行時的注入。


支持那些數據庫注入?---->

  1. Mysql,oracle,P/SQL

  2. Mssql,Access,db2.

  3. SQLite,Firebird,SAP.


SQLmap的基本命令:

Options(選項): 

--version             顯示程序的版本號並退出 


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


-v VERBOSE            詳細級別:0-6(默認爲1) 


Target(目標): 

如下至少須要設置其中一個選項,設置目標URL。 


-d DIRECT           直接鏈接到數據庫。 


-u URL, --url=URL   目標URL。 


-l LIST             從Burp或WebScarab代理的日誌中解析目標。 


-r REQUESTFILE      從一個文件中載入HTTP請求。 


-g GOOGLEDORK       處理Google dork的結果做爲目標URL。 


-c CONFIGFILE       從INI配置文件中加載選項。 


Request(請求): 

    這些選項能夠用來指定如何鏈接到目標URL。

--data=DATA         經過POST發送的數據字符串 

--cookie=COOKIE     HTTP Cookie頭 

--cookie-urlencode  URL 編碼生成的cookie注入 

--drop-set-cookie   忽略響應的Set - Cookie頭信息 

--user-agent=AGENT  指定  HTTP User - Agent頭 

--random-agent      使用隨機選定的HTTP User - Agent頭 

--referer=REFERER   指定  HTTP Referer頭 

--headers=HEADERS   換行分開,加入其餘的HTTP頭 

--auth-type=ATYPE   HTTP身份驗證類型(基本,摘要或NTLM)(Basic, Digest or NTLM) 

--auth-cred=ACRED   HTTP身份驗證憑據(用戶名:密碼) 

--auth-cert=ACERT   HTTP認證證書(key_file,cert_file) 

--proxy=PROXY       使用HTTP代理鏈接到目標URL  --proxy http://127.0.0.1:8888

--proxy-cred=PCRED  HTTP代理身份驗證憑據(用戶名:密碼) 

--ignore-proxy      忽略系統默認的HTTP代理 

--delay=DELAY       在每一個HTTP請求之間的延遲時間,單位爲秒  --delay 0.5

--timeout=TIMEOUT   等待鏈接超時的時間(默認爲30秒) 

--retries=RETRIES   鏈接超時後從新鏈接的時間(默認3) 

--scope=SCOPE       從所提供的代理日誌中過濾器目標的正則表達式 

--safe-url=SAFURL   在測試過程當中常常訪問的url地址 

--safe-freq=SAFREQ  兩次訪問之間測試請求,給出安全的URL 


Optimization(優化): 

   這些選項可用於優化SqlMap的性能。 

    -o                  開啓全部優化開關 

--predict-output    預測常見的查詢輸出 

--keep-alive        使用持久的HTTP(S)鏈接 

--null-connection   從沒有實際的HTTP響應體中檢索頁面長度 

--threads=THREADS   最大的HTTP(S)請求併發量(默認爲1) 


Injection(注入): 

    這些選項能夠用來指定測試哪些參數,  提供自定義的注入payloads和可選篡改腳本。 

    -p TESTPARAMETER    可測試的參數(S) 

--dbms=DBMS         強制後端的DBMS爲此值 如:--dbms "Mysql"

--os=OS             強制後端的DBMS操做系統爲這個值 

--prefix=PREFIX     注入payload字符串前綴 

--suffix=SUFFIX     注入payload字符串後綴 

--tamper=TAMPER     使用給定的腳本(S)篡改注入數據 


Detection(檢測): 

這些選項能夠用來指定在SQL盲注時如何解析和比較HTTP響應頁面的內容。 

--level=LEVEL       執行測試的等級(1-5,默認爲1) 

--risk=RISK         執行測試的風險(0-3,默認爲1) 

--string=STRING     查詢時有效時在頁面匹配字符串 

--regexp=REGEXP     查詢時有效時在頁面匹配正則表達式 

--text-only         僅基於在文本內容比較網頁 


  Techniques(技巧): 

  這些選項可用於調整具體的SQL注入測試。 

--technique=TECH    SQL注入技術測試(默認BEUST) 

--time-sec=TIMESEC  DBMS響應的延遲時間(默認爲5秒) 

--union-cols=UCOLS  定列範圍用於測試UNION查詢注入 

--union-char=UCHAR  用於暴力猜解列數的字符 


 Fingerprint(指紋): 

-f, --fingerprint     執行檢查普遍的DBMS版本指紋 


Enumeration(枚舉): 

這些選項能夠用來列舉後端數據庫管理系統的信息、表中的結構和數據。此外,您還能夠運行您本身

的SQL語句。 

-b, --banner        檢索數據庫管理系統的標識 

--current-user      檢索數據庫管理系統當前用戶 

--current-db        檢索數據庫管理系統當前數據庫 

--is-dba            檢測DBMS當前用戶是否DBA 

--users             枚舉數據庫管理系統用戶 

--passwords         枚舉數據庫管理系統用戶密碼哈希 

--privileges        枚舉數據庫管理系統用戶的權限 

--roles             枚舉數據庫管理系統用戶的角色 

--dbs               枚舉數據庫管理系統數據庫 

--tables            枚舉的DBMS數據庫中的表 

--columns           枚舉DBMS數據庫表列 

--dump              轉儲數據庫管理系統的數據庫中的表項 

--dump-all          轉儲全部的DBMS數據庫表中的條目 

--search            搜索列(S),表(S)和/或數據庫名稱(S) 

    -D DB               要進行枚舉的數據庫名 

    -T TBL              要進行枚舉的數據庫表 

    -C COL              要進行枚舉的數據庫列 

    -U USER             用來進行枚舉的數據庫用戶 

--exclude-sysdbs    枚舉表時排除系統數據庫 

--start=LIMITSTART  第一個查詢輸出進入檢索 

--stop=LIMITSTOP    最後查詢的輸出進入檢索 

--first=FIRSTCHAR   第一個查詢輸出字的字符檢索 

--last=LASTCHAR     最後查詢的輸出字字符檢索 

--sql-query=QUERY   要執行的SQL語句 

--sql-shell         提示交互式SQL的shell 


Brute force(蠻力): 

    這些選項能夠被用來運行蠻力檢查。 

--common-tables     檢查存在共同表 

--common-columns    檢查存在共同列 

  User-defined function injection(用戶自定義函數注入): 

    這些選項能夠用來建立用戶自定義函數。 

--udf-inject        注入用戶自定義函數 

--shared-lib=SHLIB  共享庫的本地路徑 

File system access(訪問文件系統): 

    這些選項能夠被用來訪問後端數據庫管理系統的底層文件系統。 

--file-read=RFILE   從後端的數據庫管理系統文件系統讀取文件 

--file-write=WFILE  編輯後端的數據庫管理系統文件系統上的本地文件 

--file-dest=DFILE   後端的數據庫管理系統寫入文件的絕對路徑 

Operating system access(操做系統訪問): 

    這些選項能夠用於訪問後端數據庫管理系統的底層操做系統。 

--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 Framework本地的安裝路徑 

--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註冊表項值類型 


General(通常): 

這些選項能夠用來設置一些通常的工做參數。 

    -t TRAFFICFILE      記錄全部HTTP流量到一個文本文件中 

    -s SESSIONFILE      保存和恢復檢索會話文件的全部數據 

--flush-session     刷新當前目標的會話文件 

--fresh-queries     忽略在會話文件中存儲的查詢結果 

--eta               顯示每一個輸出的預計到達時間 

--update            更新SqlMap 

--save              file保存選項到INI配置文件 

--batch             從不詢問用戶輸入,使用全部默認配置

 

Miscellaneous(雜項): 

--beep              發現SQL注入時提醒 

--check-payload     IDS對注入payloads的檢測測試 

--cleanup           SqlMap具體的UDF和表清理DBMS 

--forms             對目標URL的解析和測試形式 

--gpage=GOOGLEPAGE  從指定的頁碼使用谷歌dork結果 

--page-rank         Google dork結果顯示網頁排名(PR) 

--parse-errors      從響應頁面解析數據庫管理系統的錯誤消息 

--replicate         複製轉儲的數據到一個sqlite3數據庫 

--tor               使用默認的Tor(Vidalia/ Privoxy/ Polipo)代理地址 

--wizard            給初級用戶的簡單向導界面

相關文章
相關標籤/搜索