大量的現代企業採用網路應用程式與其客戶無縫地連接到一起,但由於不正確的編碼,造成了許多安全問題。 Web應用程式中的漏洞可使駭客取得對敏感資訊(如個人資料、登入資訊等)的直接存取。
Web應用程式準許訪客提交數據,並可透過網際網路從資料庫中檢索資料。而資料庫是多數Web應用程式的心臟。資料庫維持Web應用程式將特定內容交給訪客的數據,Web應用程式在將資訊交給客戶、供應商時,也從資料庫取得資料。
SQL注入攻擊是最常見的網路應用程式攻擊技術,它會試圖繞過SQL指令。當使用者輸入沒有「淨化」時,如果執行這種輸入就會表現出一種SQL注入漏洞。
檢查SQL注入漏洞主要涉及到兩方面,一是審計用戶的Web應用程序,二是透過使用自動化的SQL注入掃描器執行審記的最佳方法。在此,筆者羅列了一些對Web應用程式開發人員和專業的安全審計人員有價值的SQL注入掃描程式。
一、SQLIer
SQLIer可以找到網站上有SQL注入漏洞的URL,並根據資訊產生利用SQL注入漏洞,但它不要求使用者的互動。透過這個方法,它可以產生一個UNION SELECT查詢,進而可以強力攻擊資料庫口令。這個程式在利用漏洞時並不使用引號,這意味著它可適應多種網站。
SQLIer透過「true/false」SQL注入漏洞強力口令。借助於「true/false」 SQL注入漏洞強力口令,使用者是無法從資料庫查詢資料的,只能查詢一個可傳回「true」、「false」值的語句。
根據統計,一個八個字元的口令(包括十進位ASCII代碼的任何字元)只需大約1分鐘即可破解。
其使用語法如下,sqlier [選項] [URL]
其選項如下:
-c :[主机] 清除主机的漏洞利用信息 -s :[秒]在网页请求之间等待的秒数 -u:[用户名]从数据库中强力攻击的用户名,用逗号隔开。 -w:[选项]将[选项]交由wget 此外,此程序还支持猜测字段名,有如下几种选择: --table-names [表格名称]:可进行猜测的表格名称,用逗号隔开。 --user-fields[用户字段]:可进行猜测的用户名字段名称,用逗号隔开。 --pass-fields [口令字段]:可进行猜测的口令字段名称,用逗号隔开。
下面說一下其基本用法:
#例如,假設在下面的URL中有一個SQL注入漏洞:
example.com/sqlihole.php?id=1
我們運行下面這個命令:
sqlier -s 10 example.com/sqlihole.php?id=1
從資料庫中得到足夠的信息,以利用其口令,其中的數字「10」表示要在每次查詢之間等待10秒鐘。
如果表格、使用者名字段、口令欄位名稱猜測得正確,那麼漏洞利用程式會把使用者名稱交付查詢,準備從資料庫中強力攻擊口令。
sqlier -s 10 example.com -u BCable,administrator,root,user4
然而,如果內建的欄位/表格名稱沒有猜中正確的欄位名,使用者就可以執行:
sqlier -s 10 example.com --table-names [table_names] --user-fields [user_fields] --pass-fields [pass_fields]
除非知道了正確的表格名稱、使用者名字欄位、口令字段名,SQLIer就無法從資料庫中強力攻擊口令。
二、SQLMap:
這是一個自動的「盲目」SQL注入工具,它用python開發,它能執行一個動態的資料庫管理系統指紋識別,可以完整地窮舉遠端資料庫。其目標是實施一個完整的功能性資料庫管理系統工具,它能夠利用Web應用程式設定的全部缺陷,這些安全缺陷可以導致SQL注入漏洞。
在SQLMap偵測到目標系統上的一個或多個SQL注入漏洞之後,使用者就可以從多種選項中選擇,進而執行全面的後端資料庫管理系統指紋識別,擷取資料庫管理系統會話使用者和資料庫,窮舉使用者、口令雜湊、資料庫,運行其自身的SQL SELECT語句,讀取檔案系統上的特定檔案等。
此軟體完全支援MySQL、 Oracle、PostgreSQL、Microsoft SQL Server等後端資料庫管理系統。此外,它還識別微軟的Access資料庫,以及DB2、Informix、 Sybase 、 Interbase等。
其使用方法如下:
sqlmap.py [选项] {-u <URL> | -g <google dork> | -c <配置文件>} 其中,-u URL指明目标URL -g google dork 将google dork结果处理为目标url
三、SQLID:
此工具是SQL注入漏洞挖掘器,是一個命令列實用程序,它能夠找到SQL注入漏洞和網站中的常見錯誤。它可以執行以下幾個操作:尋找網頁中的SQL注入漏洞,測試提交的表單,尋找SQL注入漏洞的可能性。它還支援HTTP、HTTPS、基本身份驗證等。
其用法如下:
Sqid.rb [選項]
其選項有以下幾種:
-m,--mode MODE,它指明以某种模式进行操作,其中MODE有以下几种情况:g,google:以google搜索模式操作;u,url检查这个url;p,page,它主要检查单一的网页;c,crawl,检查站点。
其中,google搜尋模式選項有以下幾種情況,-q,--quary 查詢,QUERY執行google搜尋;-s,--start START,對所需要的首個結果的零索引;-r,--results RESULTS,在此指明所需要的結果數量,預設值為20。
四、SQL Power Injector
#SQL Power Injector可帮助渗透测试人员找到并利用网页上的漏洞。目前,它支持SQL Server、Oracle、MYSQL、Sybase/Adaptive Sever和DB2等数据库,但在使用inline注入时,还可借助现有的数据库管理系统来使用此软件。
其自动化的工作模式以两种方式进行,一是比较期望的结果,二是根据时间延迟。
其工作状态如图:
五、SQLNinja:
Sqlninja可以利用以SQL Server为后端数据支持的应用程序的漏洞,其主要目标是提供对有漏洞的数据库服务器的远程访问。Sqlninja的行为受到配置文件的控制,它告诉了Sqlninja攻击的目标和方式,还有一些命令行选项。比如,有如下一些命令选项:
-m<攻击模式>,其攻击模式有测试(test)、指纹识别(fingerprint)、强力攻击(bruteforce)等;
其它的命令选项,-v : 指明进行详细输出;-f:指明一个使用的配置文件。-w指明以强力攻击模式使用的单词列表。
如图是运行过程界面:
【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
以上是分享五個著名的SQL注入漏洞掃描工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!