SQL注入漏洞測試工具比較

2021-06-04 20:09:29 字數 3697 閱讀 8646

sql注入測試一定要使用工具。原因一:工作效率;原因二:人工很難構造出覆蓋面廣的盲注入的sql語句。例如當乙個查詢的where字句包含了多個引數,or and的關係比較多時,簡單的 or 1=1, and 1=2是很難發現注入點的。

sql注入的工具很多(top 15 free sql injection scanners),我最近使用的有sqlmap,sqlix,jbrofuzz,sql power injector, **啄木鳥.現將他們的使用方法和比較結果貼於此:

sqlmap是python開發的sql注入漏洞測試工具。沒有ui介面的命令列工具。雖說是命令列工具,可他的使用比**啄木鳥,sql power injector 容易多了,並且有很詳細的幫助文件。從下面2個位址獲得相關程式包:

sqlmap根目錄下sqlmap.py是主程式,sqlmap.conf是配置檔案。sqlmap的使用有2種方式:

1 在cmd中直接輸入命令列。

2 在sqlmap.conf中配置命令列引數,然後在cmd中用sqlmap.py -c sqlmap.conf 發起攻擊。

我比較喜歡第二種方式。這裡僅列出sqlmap.conf種幾個命令。更詳細的命令描述參考doc目錄下的readme.pdf,

# target url.

# example:

url =

指定攻擊的url位址。

# data string to be sent through post.

data =

如果是post命令的話,請在data欄位填上post的資料。

如果**需要登入的話,請在cookie欄位填上cookie資料。cookie資料可以用wireshark抓包得到。

# alert with audio beep when sql injection found.

beep = true

建議把beep設為true,當發現注入點時sqlmap會嘀的一聲,很提神的聲音。

相關命令設定好以後,在命令列中輸入sqlmap.py -c sqlmap.conf,就可以開始sql注入測試啦。發現注入點(嘀的一聲響)後,就可以通過設定其他命令來嘗試獲取更多的後台資料庫資訊。

sqlix 是由owasp用perl開發的sql注入漏洞測試工具。跟sqlmap一樣是命令列驅動,也和sqlmap一樣的好用。沒有詳細的幫助文件,專案主頁上有簡單的安裝和使用介紹。

sqlix依賴2個包:首先使用下面的命令安裝依賴包:

perl -mcpan -e 'install www::checksite'

perl -mcpan -e 'install tie::chararray'

如果checksite安裝失敗,出現如下錯誤資訊:

make test had returned bad status, won't install without force

使用下面的命令強制安裝:

perl -mcpan -e "cpan::shell->force(qw(install www::checksite));"

安裝成功後就可以在cmd中開始sqlix的注入測試了。sqlix的命令相對較少:

-url 給定測試的url位址

--post_content 如果是post命令的話,**上post資料

-crawl 這是乙個唯一sqlmap沒有的功能。他指定乙個url的根目錄,爬蟲原理爬出所有的鏈結位址,然後對每個位址進行注入測試。

-v 顯示資訊級別,值越大,顯示的資訊越多。

-all

-method_taggy

-method_error

-method_blind

-method_blind_integer

-method_blind_string

-method_blind_statement

-method_blind_comment

以上 這些是根據不同的注入原理得出的不同的注入方法,一般選擇-all或者-method_blind,應用所有的注入方法。

例如:sqlix.pl -url -method_blind -exploit -v=2

幾秒鐘後,顯示資訊如下:

analysing url

[+] working on id

[+] method: sql blind integer injection

[found] blind sql injection: integer based

[info] current function:

[info] length: 0

[found] sql blind integer injection

results:

the variable [id] from [ is vulnerable to sql injection [integer without quote - ].

「is vulnerable」 表明這個url是有注入漏洞的。

sqlix發現漏洞的能力確實不錯,不比sqlmap差。而漏洞利用的能力遠不如sqlmap,他只能執行一些函式和sql語句。事實上在不知道後台資料庫表名的情況下很難執行sql語句。sqlix這樣設計是可以理解的,他的目的只是為了進行sql注入漏洞測試發現漏洞,才不希望被用來幹壞事呢。

jbofuzz,是owasp開發web應用程式模糊(fuzz)測試工具. 有ui介面,但真的不好用,很多常用操作都沒有快捷鍵的支援。他提供sql注入相關的有效載荷(payload,這個詞真沒有合適的中文翻譯)。直接看看sql注入的payload吧:

' or 1=1--

and 12=21

or '7659'='7659

union all select @@version--

union all select 1,2,3

1 and user_name() = 'dbo'

等等payload有很多。jbrofuzz用這些預定義的payload去替換http請求中的引數值(可以是請求的任意字段),儲存http返回資料,並對返回資料做統計分析,形成統計圖表,通過人工分析統計圖表來判斷是否有注入漏洞。很費勁,建議不要用jbrofuzz進行sql注入漏洞測試。他的價值在於很多的payload,基本上每個payload對應一種注入方法,可以作為sql注入學習和手工測試的參考。

sqlpowerinjector: 悲慘,真不好用。沒有其他評價。

**啄木鳥

能發現簡單的注入漏洞。wireshark抓包可見,他構造的sql注入payload僅僅是簡單的"and 1=1--","and 1>1--"等。 在發現漏洞後啄木鳥猜表面的能力也很弱,只是依靠查詢ms-sql和oracle的user table來獲取使用者表名。

sqlmap    啄木鳥    sqlix        

sqlmap    啄木鳥    sqlix        

sqlmap    啄木鳥    sqlix        

sqlmap    no             sqlix        

sqlmap    no             sqlix        

sqlmap    no             sqlix        

sqlmap    no             sqlix        

sqlmap    no             sqlix        

最後結果:sqlmap是個很好的sql注入測試工具。

SQL注入漏洞測試工具比較

sql注入測試一定要使用工具。原因一 工作效率 原因二 人工很難構造出覆蓋面廣的盲注入的sql語句。例如當乙個查詢的where字句包含了多個引數,or and的關係比較多時,簡單的or 1 1,and 1 2是很難發現注入點的。sql注入的工具很多 top 15 free sqlinjection ...

SQL注入漏洞測試工具比較

sql注入測試一定要使用工具。原因一 工作效率 原因二 人工很難構造出覆蓋面廣的盲注入的sql語句。例如當乙個查詢的where字句包含了多個引數,or and的關係比較多時,簡單的or 1 1,and 1 2是很難發現注入點的。sql注入的工具很多 top 15 free sqlinjection ...

墨者 SQL注入漏洞測試 delete注入

測試注入 嘗試order by 失敗 測試and,頁面正常回顯 試著用報錯注入,and updatexml 1,concat 0x7e,select database 0x7e 1 發現有注入點,資料庫是pikaqiu 在這裡提醒大家不要用id 61 65進行注入,構造乙個不存在的最好 如博主用的是...