SQLmap是一款用來檢測與利用SQL漏洞的注入神器。


 

sqlmap 

重要參考 http://www.kali.org.cn/forum-75-1.html

 

SQLmap是一款用來檢測與利用SQL漏洞的注入神器。開源的自動化SQL注入工具,由Python寫成,具有如下特點:

  • 完全支持MySQL、Oracle、PostgreSQL、Microsoft SQL Server、Microsoft Access、IBM DB2、SQLite、Firebird、Sybase、SAP MaxDB、HSQLDB和Informix等多種數據庫管理系統。
  • 完全支持布爾型盲注、時間型盲注、基於錯誤信息的注入、聯合查詢注入和堆查詢注入。
  • 在數據庫證書、IP地址、端口和數據庫名等條件允許的情況下支持不通過SQL注入點而直接連接數據庫。
  • 支持枚舉用戶、密碼、哈希、權限、角色、數據庫、數據表和列。
  • 支持自動識別密碼哈希格式並通過字典破解密碼哈希。
  • 支持完全地下載某個數據庫中的某個表,也可以只下載某個表中的某幾列,甚至只下載某一列中的部分數據,這完全取決於用戶的選擇。
  • 支持在數據庫管理系統中搜索指定的數據庫名、表名或列名
  • 當數據庫管理系統是MySQL、PostgreSQL或Microsoft SQL Server時支持下載或上傳文件。

當數據庫管理系統是MySQL、PostgreSQL或Microsoft SQL Server時支持執行任意命令並回現標准輸出。

安裝

  • Sqlmap的開源項目,托管在github,最簡單的安裝方式便是使用git,執行如下命令:
  •   git clone https://github.com/sqlmapproject/sqlmap.git
  • 片刻后命令執行完畢,可以看到當前目錄中多了一個名為“sqlmap”的目錄, 
    該目錄中保存着Sqlmap的Python源碼、配置文件和文檔。 
    由於Python是解釋執行的語言,不用編譯,所以至此最新版的Sqlmap已經安裝完成 

輸出級別(Output verbosity)

參數:-v

Sqlmap的輸出信息按從簡到繁共分為7個級別(和葫蘆娃一樣多),依次為0、1、2、3、4、5和6。使用參數“-v <級別>”來指定某個等級,如使用參數“-v 6”來指定輸出級別為6。默認輸出級別為1。各個輸出級別的描述如下:

0:只顯示Python的tracebacks信息、錯誤信息[ERROR]和關鍵信息[CRITICAL];

1:同時顯示普通信息[INFO]和警告信息[WARNING];

2:同時顯示調試信息[DEBUG];

3:同時顯示注入使用的攻擊荷載;

4:同時顯示HTTP請求;

5:同時顯示HTTP響應頭;

6:同時顯示HTTP響應體。

各個級別輸出的信息詳細到什么程度,還需要自己嘗試下,親眼見到,才會有明確的認識。

使用格式: sqlmap [參數]

參數:

-h, –help            顯示基本的幫助文檔

-hh                   顯示高級幫助

–version             顯示當前版本號

-v VERBOSE            Verbosity level: 0-6 (default 1)

目標:

至少要提供這些參數中的一個來定義

 

參數:

-d DIRECT           用於連接數據庫的連接字符串

-u URL, –url=URL   目標URL (e.g. “http://www.site.com/vuln.php?id=1“)

-l LOGFILE          用Burp 或者 WebScarab解析目標代理文日志

-x SITEMAPURL       遠程解析目標網站的路徑

-m BULKFILE         掃描文件中的多個目標

-r REQUESTFILE      從文件中加載http地址

-g GOOGLEDORK       用谷歌解析目標

-c CONFIGFILE       從ini的配置文件加載

要求:

這些參數是用來如何連接到目標網站

 

–method=METHOD     對給定的HTTP方法(例如把武力使用)

–data=DATA         將要發送的數據字符串

–param-del=PARA..  用於分裂參數值的字符

–cookie=COOKIE     HTTP Cookie標頭值 cooike注入

–cookie-del=COO..  用於分割餅干值的字符

–load-cookies=L..  含Netscape / wget cookies文件格式

–drop-set-cookie   忽略設置的頭部信息

–user-agent=AGENT  HTTP用戶代理標頭值

–random-agent      使用隨機選擇HTTP用戶代理標頭值

–host=HOST         HTTP主機頭值

–referer=REFERER   HTTP Referer報頭值

-H HEADER, –hea..  額外的頭部信息 (e.g. “X-Forwarded-For: 127.0.0.1″)

–headers=HEADERS   額外的標題 (e.g. “Accept-Language: fr\nETag: 123″)

–auth-type=AUTH..  HTTP 的認證類型 (Basic, Digest, NTLM or PKI)

–auth-cred=AUTH..  HTTP認證證書(name:password)

–auth-file=AUTH..  HTTP認證PEM證書/私鑰文件

–ignore-401        忽略HTTP 401錯誤(未授權的)

–proxy=PROXY       使用代理連接到目標網址

–proxy-cred=PRO..  代理身份驗證憑據(名稱:密碼)

–proxy-file=PRO..  從文件中加載代理列表

–ignore-proxy      忽略系統默認代理設置

–tor              使用洋蔥路由網絡

–tor-port=TORPORT  設置洋蔥路由的代理端口

–tor-type=TORTYPE  設置Tor代理類型(HTTP、SOCKS4或SOCKS5(默認))

–check-tor         查看洋蔥路由的正確使用

–delay=DELAY       每個HTTP請求之間的想應時間

–timeout=TIMEOUT   等待超時連接(默認30)默認為秒

–retries=RETRIES   重試時,連接超時(默認3)

–randomize=RPARAM 給定參數的隨機變化值(s)

–safe-url=SAFEURL  在測試過程中經常訪問的網址地址

–safe-post=SAFE..  post數據發送到一個安全的網址

–safe-req=SAFER..  安全HTTP請求從文件加載

–safe-freq=SAFE..  一個給定的安全地址的兩次訪問之間的測試請求

–skip-urlencode    跳過有效載荷數據的網址編碼

–csrf-token=CSR..  參數用來舉行反CSRF令牌

–csrf-url=CSRFURL  URL地址訪問提取防CSRF令牌

–force-ssl         使用SSL / HTTPS力

–hpp               使用HTTP參數污染的方法

–eval=EVALCODE     Evaluate provided Python code before the request 

(e.g.”import hashlib;id2=hashlib.md5(id).hexdigest()”)

 

優化參數:

這些選項可用於優化性能sqlmap

-o                  打開所有的優化開關

–predict-output    普通查詢輸出預測

–keep-alive        使用持久HTTP(S)連接

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

–threads=THREADS   最大並發HTTP請求數(S)(默認為1)

 

注入:

這些選項可以用來指定要測試的參數,提供自定義注入有效載荷和隨意篡改劇本

-p TESTPARAMETER    可檢驗參數(s)

–skip=SKIP         對給定參數的跳過測試(s)

–skip-static       跳過不出現動態的測試參數

–dbms=DBMS         強制后端數據庫管理系統到這個值

–dbms-cred=DBMS..  數據庫管理系統認證證書(用戶:密碼)

–os=OS             強制后端的數據庫管理系統操作系統到這個值

–invalid-bignum    使用大數字無效值

–invalid-logical   使用邏輯操作的無效值

–invalid-string    使用隨機字符串無效值

–no-cast           關閉有效載荷模塊

–no-escape         關閉字符串逃逸機制

–prefix=PREFIX     注入有效載荷前綴字符串

–suffix=SUFFIX     注入有效載荷后綴字符串

–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”)

–time-sec=TIMESEC  延遲數據庫管理系統響應的秒數(默認為5)

–union-cols=UCOLS  為聯合查詢的SQL注入測試列范圍

–union-char=UCHAR  字符使用bruteforcing列數

–union-from=UFROM  表使用從聯合查詢的SQL注入的一部分

–dns-domain=DNS..  使用的域名DNS泄露攻擊

–second-order=S..  搜索的第二級響應結果頁面的網址

 

指紋:

-f, –fingerprint  執行廣泛的數據庫管理系統版本指紋

 

枚舉參數:

這些選項可以用來枚舉后端數據庫管理系統信息、結構和數據中包含的平台.此外,你可以運行你自己的SQL語句

-a, –all           Retrieve everything

-b, –banner        檢索數據庫標志

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

–current-db        檢索數據庫

–hostname         檢索數據庫服務器的主機名

–is-dba            檢測當前用戶是不是數據庫的管理員

–users             枚舉數據庫用戶

–passwords        枚舉數據庫用戶密碼的哈希值

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

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

–dbs               枚舉數據庫

–tables            枚舉數據庫管理系統中的數據庫表

–columns           枚舉數據庫管理中的數據庫表列

–schema           枚舉數據庫架構

–count             搜索表的條目數

–dump              扒褲衩子

–dump-all          扒數據庫數毛毛

–search            搜索數據庫列和數據庫名稱

–comments          檢測數據庫的信息

-D DB               枚舉數據庫

-T TBL              枚舉數據庫的表

-C COL              枚舉數據庫表的列

-X EXCLUDECOL       不枚舉的數據庫管理系統數據庫表

-U USER             數據庫用戶枚舉

    –exclude-sysdbs    Exclude DBMS system databases when enumerating tables

    –pivot-column=P..   主數據庫表名稱

    –where=DUMPWHERE   Use WHERE condition while table dumping

    –start=LIMITSTART  查詢輸出第一個輸出條目的檢索

    –stop=LIMITSTOP    查詢最后輸出項的檢索

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

    –last=LASTCHAR     查詢最后輸出字字符檢索

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

    –sql-shell        提示一個SQL shell

    –sql-file=SQLFILE  從給定的文件執行SQL語句(S)

 

暴力破解:

這些選項可以用來運行蠻力測試

    –common-tables     檢查常見表的存在性

    –common-columns    檢查公共列的存在

 

用戶定義函數注入:

這些選項可用於創建自定義的用戶定義函數

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

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

 

 文件系統訪問:

這些選項可用於訪問后台數據庫管理系統的底層文件系統

    –file-read=RFILE   從后台的數據庫管理系統文件系統中讀取一個文件

    –file-write=WFILE  在后台的數據庫管理系統文件系統上寫一個本地文件

    –file-dest=DFILE   后台數據庫的絕對路徑寫

 

操作系統訪問:

這些選項可用於訪問后台數據庫管理系統底層操作系統

    –os-cmd=OSCMD      執行操作系統命令

    –os-shell          用於交互式操作系統shell的提示

    –os-pwn            顯示OOB shell, Meterpreter or或者VNC

    –os-smbrelay       One click prompt for an OOB shell, Meterpreter or VNC

    –os-bof            存儲過程緩沖區溢出開發

    –priv-esc          數據庫進程用戶權限升級

    –msf-path=MSFPATH  本地路徑在metasploit框架安裝

    –tmp-path=TMPPATH  臨時文件目錄的遠程絕對路徑

 

Windows注冊表訪問:

這些選項可用於訪問后台數據庫管理系統的注冊表

    –reg-read          讀取一個窗口注冊表項

    –reg-add           寫一個窗口注冊表項的數據

    –reg-del           刪除一個注冊表項

    –reg-key=REGKEY    Windows注冊表

    –reg-value=REGVAL  注冊表項的關鍵值

    –reg-data=REGDATA  注冊表鍵值數據

    –reg-type=REGTYPE  注冊表鍵值類型

 

常規:

這些選項可以用來設置一些常規的工作參數

    -s SESSIONFILE      從存儲加載會話(sqlite)文件

    -t TRAFFICFILE      Log all HTTP traffic into a textual file

    –batch             Never ask for user input, use the default behaviour

    –binary-fields=..  Result fields having binary values (e.g. “digest”)

    –charset=CHARSET   用於數據檢索的力字符編碼

    –crawl=CRAWLDEPTH  從目標網址開始抓取網站

    –crawl-exclude=..  正則表達式從爬行排除頁 (e.g. “logout”)

    –csv-del=CSVDEL    限定使用CSV輸出特性 (default “,”)

    –dump-format=DU..  轉儲數據格式 (CSV (default), HTML or SQLITE)

    –eta               顯示為每個輸出估計的到達時間

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

    –forms           目標網址的解析和測試形式

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

    –hex              使用數據庫管理系統的十六進制函數(S)進行數據檢索

    –output-dir=OUT..  自定義輸出目錄路徑

    –parse-errors      解析和顯示響應中的數據庫管理系統錯誤消息    

    –save=SAVECONFIG   保存選項來配置INI文件

    –scope=SCOPE       正則表達式過濾提供代理日志目標

    –test-filter=TE..  選擇測試的有效載荷和/或頭文件(e.g. ROW)

    –test-skip=TEST..  跳過試驗載荷和/或標題 (e.g. BENCHMARK)

    –update           更新sqlmap

 

雜項:

    -z MNEMONICS        短期記憶(e.g. “flu,bat,ban,tec=EU”)

    –alert=ALERT       運行主機操作系統命令(s)時,SQL注入是發現

    –answers=ANSWERS   漏洞答案集(e.g. “quit=N,follow=N”)

    –beep              當有注入點被發現的時候報警

    –cleanup           清理數據庫從sqlmap具體UDF和表

    –dependencies      檢查沒有的(非核心)sqlmap依賴包

    –disable-coloring  禁用控制台輸出着色

    –gpage=GOOGLEPAGE 使用谷歌這一結果從指定的頁碼

    –identify-waf      使一個WAF/IPS / IDS保護全面測試

    –mobile           模仿智能手機通過HTTP用戶代理標頭

    –offline           在脫機模式下工作(只使用會話數據)

    –page-rank         顯示網頁排名(PR)為谷歌這一結果

    –purge-output      安全地刪除輸出目錄中的所有內容

    –skip-waf         跳過WAF/IPS / IDS保護啟發式檢測

    –smart             只有積極的啟發式(S)進行徹底的測試

    –sqlmap-shell      提示一個互動的sqlmap shell

    –tmp-dir=TMPDIR    用於存儲臨時文件的本地目錄

    –wizard           為初學者用戶提供簡單的向導界面

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM