專為復雜web環(huán)境設(shè)計的安全掃描器UnisWebScanner
【51CTO.com 綜合消息】隨著各種各樣的Web應(yīng)用(電子商務(wù)、論壇、新聞、博客等)不斷進入人們的生活,越來越多的動態(tài)元素被加入到Web建設(shè)中來。表單、登錄、信息發(fā)布等動態(tài)內(nèi)容允許訪問者獲得和提交動態(tài)的內(nèi)容,如果這些Web應(yīng)用存在不安全的隱患,那么整個數(shù)據(jù)庫甚至是Web站點系統(tǒng)都會面臨安全風險。據(jù)統(tǒng)計,目前75%的網(wǎng)絡(luò)攻擊行為都是通過Web來進行的。
對Web應(yīng)用的安全性進行手工測試和審計是一項復雜且耗時的工作,不僅需要極大的耐心還需要專業(yè)的技術(shù)經(jīng)驗。對于一般的Web管理人員來說,基于安全的管理將占用大量工作時間。自動化的漏洞掃描工具能夠大幅簡化對于未知安全隱患的檢測工作,有助于Web管理人員將精力轉(zhuǎn)向如何處理安全風險上。
UnisWebScanner 專為當前復雜的Web環(huán)境而設(shè)計,作為自動化的Web應(yīng)用安全檢測工具,能夠?qū)QL注入、XSS、網(wǎng)站掛馬、敏感信息泄漏等風險進行全面審計,適用于通過internet、intranet、extranet進行網(wǎng)上交易或信息發(fā)布的大、中、小型應(yīng)用,如金融、證券、政府、電子商務(wù)、電信運營商、基金、網(wǎng)游、科研院所等各類企事業(yè)單位。
結(jié)構(gòu)說明
【UnisWebScanner主界面】
![]() |
圖 1 主界面 |
【掃描引擎】
用于對網(wǎng)站進行安全掃描,包含2個步驟:
爬蟲 —— 自動分析網(wǎng)站,輸出網(wǎng)站結(jié)構(gòu)。
掃描 —— 從攻擊者角度思考,智能化掃描。
【漏洞驗證】
如果發(fā)現(xiàn)有注入點,可以通過漏洞驗證模塊猜測數(shù)據(jù)庫類型、枚舉數(shù)據(jù)庫、表、讀取系統(tǒng)文件等。
【輔助工具】
代理測試臺提供代理的功能,幫助您截獲、檢查和修改HTTP客戶端到Web服務(wù)器的通信,如分析Session ID、越過客戶端javascript驗證等。
3.5產(chǎn)品許可證
您需要注冊后才可使用UnisWebScanner的全部功能。欲購買產(chǎn)品許可證,請聯(lián)系產(chǎn)品提供商。 #p#
一、安裝部署
1.安裝需求
![]() |
表1 |
2.安裝過程
獲得產(chǎn)品
從產(chǎn)品提供商獲得產(chǎn)品及使用手冊。
安裝
運行安裝程序,直到安裝完成。
提供必要的注冊信息
在“關(guān)于”->“用戶注冊”對話框中獲取系統(tǒng)信息,并提供自己的名稱和網(wǎng)站域名授權(quán)信息。
獲得許可證
從產(chǎn)品提供商處獲得許可證。
注冊
在“關(guān)于”->“用戶注冊”輸入“用戶信息”和“注冊信息”。
升級插件在“關(guān)于”,點擊“升級”,更新漏洞庫、規(guī)則庫到最新版本。
3.卸載
可以在“添加/刪除程序”中卸載程序,也可以在開始菜單中通過快捷方式進行卸載。 #p#
二、使用說明
注意事項:根據(jù)中華人民共和國相關(guān)法律規(guī)定,本產(chǎn)品只適用于已獲得掃描授權(quán)的網(wǎng)站。任何違反法律規(guī)定的行為由使用者自行承擔,與UnisWebScanner及開發(fā)者無關(guān),特此聲明。
1.向?qū)?/STRONG>
為了方便用戶直接使用本產(chǎn)品的功能,UnisWebScanner提供了使用向?qū)?,只需您填寫或選擇一些必要的信息,就可以快速開始(按照系統(tǒng)默認配置,適用于大多數(shù)的應(yīng)用環(huán)境)進行掃描。
2.網(wǎng)站掃描
網(wǎng)站掃描是本產(chǎn)品第一大功能,對網(wǎng)站的安全漏洞進行檢測,如:SQL注入、跨站腳本、網(wǎng)頁掛馬、敏感文件泄漏、敏感目錄泄漏及后臺管理信息泄漏等。
![]() |
圖2 網(wǎng)站掃描 |
對目標網(wǎng)站進行掃描時,需要提供如下的必要信息:
1)輸入掃描網(wǎng)站的起始URL
XXX
XXX:80 等
2)輸入Cookie
有些網(wǎng)站需要輸入用戶名、密碼后才能登入,在掃描前需要將登陸后的Cookie填入,并將登陸后的URL輸入“起始URL”輸入框中;其他地方可不必填寫。
3)選擇掃描策略
可以選擇特定的掃描策略模塊,也可以選擇全部掃描策略模塊(在“配置”->“策略配置”中選擇全部策略模塊中的例外模塊)。
4) 點擊“開始”進行掃描
掃描過程中右側(cè)的狀態(tài)窗口中會顯示進度及數(shù)據(jù)統(tǒng)計,下方日志窗口中顯示實時的日志信息和錯誤信息。
5)終止掃描
點擊停止按鈕,注意查看下方的日志信息,程序會終止工作線程。
在整個掃描過程中,您可以通過掃描狀態(tài)欄看到當前正在檢測的模塊,以及檢測結(jié)果的實時信息,如下圖所示:
![]() |
圖3 掃描信息 |
您可以在圖3中的漏洞統(tǒng)計信息中查看詳細的漏洞列表。為了便于查看,軟件將同一鏈接的漏洞進行了歸類顯示,這樣可以很清楚的看到哪些鏈接存在安全隱患。如圖4和圖5所示。
![]() |
圖4 漏洞列表信息 |
![]() |
圖5 漏洞詳細信息 |
您可以右鍵點擊該漏洞,對該漏洞進行驗證,詳見漏洞驗證相關(guān)章節(jié)。
![]() |
圖6 快捷驗證漏洞 |
#p#
3.漏洞驗證
3.1漏洞基本信息
漏洞基本信息的填寫有兩種方式:一是右鍵點擊掃描結(jié)果中的注入漏洞列表,選擇驗證漏洞,此時將自動輸入漏洞信息;二是手工填寫注入漏洞列表,需要填寫如下參數(shù)。
![]() |
圖7 漏洞基本信息 |
1)鏈接
具有注入漏洞的鏈接地址,如果是GET方式,則該鏈接必須帶參數(shù),即:XXX/XX.XXX?XX=XXX,如果是POST方式則可以帶參數(shù)也可以不帶。
2)Cookie
同網(wǎng)站掃描部分的Cookie,請參考網(wǎng)站掃描部分關(guān)于Cookie的說明。
3)方法
選擇GET或者POST
4)參數(shù)
此處為POST的參數(shù)
5)位置
此處為具有注入漏洞的參數(shù)的位置號
6)類型
注入漏洞的類型:整數(shù)型、字符串型以及搜索行,掃描結(jié)果中的注入漏洞列表中會提供相應(yīng)的信息,如果是手動輸入,請手工確認漏洞信息。
7)關(guān)鍵字
關(guān)鍵字必須通過人工的方式來確認(可以通過本軟件的輔助工具中的手工測試臺),所謂關(guān)鍵字是指當參數(shù)后面所跟條件為恒成立時,網(wǎng)站反饋的網(wǎng)頁內(nèi)容中必然包含的字符串,并且是當參數(shù)后面所跟條件為恒不成立時,網(wǎng)站反饋的網(wǎng)頁內(nèi)容中必然不包含該字符串,則該字符串為關(guān)鍵字?!菊堊⒁忾喿x此“關(guān)鍵字”部分】
8)數(shù)據(jù)庫類型
填入以上信息后,可以通過點擊猜測數(shù)據(jù)庫類型來進行猜測,根據(jù)數(shù)據(jù)庫不同的類型可以猜測相應(yīng)數(shù)據(jù)庫的屬性以及數(shù)據(jù)的內(nèi)容。
注意:
MSSQL With Error數(shù)據(jù)庫類型即后臺數(shù)據(jù)庫為MSSQL,并且WEB服務(wù)器支持錯誤信息的反饋。
對于Access數(shù)據(jù)庫類型的猜測只支持帶錯誤顯示的Web服務(wù)器。
3.2數(shù)據(jù)庫基本信息猜測
當猜測完數(shù)據(jù)庫類型后,可以利用注入漏洞來猜測相應(yīng)數(shù)據(jù)庫的基本信息,如:數(shù)據(jù)庫名稱、版本、賬戶名稱等信息。
![]() |
圖8 數(shù)據(jù)庫基本信息 |
3.3數(shù)據(jù)庫內(nèi)容猜測
數(shù)據(jù)庫內(nèi)容的猜測有兩種方式:一是根據(jù)數(shù)據(jù)庫自身的字典進行猜測,Oracle、MSSQL、MSSQLWithError屬于該類型;二是通過外部字典方式來進行猜解,Access屬于該類型,因此對Access數(shù)據(jù)庫的猜測依賴于外部字典的強大,本軟件默認使用dict目錄下的字典文件,用戶可以編輯該文件以增強字典的功能。數(shù)據(jù)庫的猜測順序為:猜測表名、猜測某一表的列名、猜測某一表某些列的內(nèi)容。為了提高猜測的性能以及準確度,您需要填寫如下信息。
1)編碼方式
猜測非中文字符一般不需要指定,采用默認的ASCII碼方式即可,如果猜測結(jié)果出現(xiàn)亂碼或空字符,則可能是由于其中包含中文字符,此時需要更改編碼的方式,可以逐一嘗試,直到猜測到正確字符為止。
2)猜測條件
當猜測表名、列名以及數(shù)據(jù)內(nèi)容時,數(shù)據(jù)量過大,猜測可能需要花費很長的時間,這時可以通過設(shè)定限制條件來進行過濾,如:猜測MSSQLServer數(shù)據(jù)庫的表名時,可以輸入:name like '%user%' ,猜測Oracle數(shù)據(jù)庫表名時,可以輸入:table_name like '%user%'。
![]() |
圖9 數(shù)據(jù)庫內(nèi)容 |
#p#
4.輔助工具
4.1手工測試
通過手動的方式來定制發(fā)送到WEB服務(wù)器的參數(shù)獲取網(wǎng)頁內(nèi)容,通過這種方式可以測試漏洞、獲取關(guān)鍵字等。
![]() |
圖10 手動測試臺 |
其中:
HTTP頭,顯示服務(wù)器反饋的信息頭內(nèi)容。
網(wǎng)頁格式,顯示瀏覽器中顯示的內(nèi)容。
網(wǎng)頁源代碼,即為該網(wǎng)頁的原始代碼。
5.設(shè)置
通常情況下,軟件已經(jīng)默認定制了通用的掃描方式和屬性,適應(yīng)大部分網(wǎng)站掃描。如果遇到一些特殊情況,可以通過設(shè)置來定制掃描方式和屬性。
5.1 HTTP選項設(shè)置
![]() |
圖11 HTTP配置選項 |
UserAgent:掃描網(wǎng)站時在HTTP頭設(shè)置UserAgent的字符串,如果某些網(wǎng)站限制特定UserAgent的訪問,則需要修改默認值。 頁面大?。寒斢龅竭^大的網(wǎng)頁或者其他文件時,網(wǎng)頁爬蟲就不需要獲取,如,爬蟲爬到某一比較大的avi文件時,就不需要獲取其詳細內(nèi)容。 網(wǎng)絡(luò)超時:您可以靈活設(shè)置。
5.2爬蟲設(shè)置
![]() |
圖12 爬蟲設(shè)置 |
文件后綴過濾:爬蟲遇到一些二進制文件,由于其中不可能會包含下一級的鏈接地址,因此不需要獲取其具體內(nèi)容。
表單內(nèi)容填寫:當爬蟲爬到一些需要用戶輸入的表單內(nèi)容時,爬蟲需要自動填寫的內(nèi)容,軟件默認值為:1
5.3檢測設(shè)置
![]() |
圖13 檢測設(shè)置 |
參數(shù)過濾:某些參數(shù)是WEB的一些通用參數(shù),這些參數(shù)是某些語言的一些默認參數(shù),因此不需要檢測這些參數(shù),以提高檢測效率。
網(wǎng)頁檢測次數(shù):對于同一網(wǎng)頁腳本不同參數(shù),檢測結(jié)果一般相同,沒有必要連續(xù)檢測過多的次數(shù)。
5.4策略配置
![]() |
圖14 策略配置 |
在掃描策略選擇時選擇全部策略,可能不希望進行某幾個模塊的檢測,可以在這里進行設(shè)定。#p#
三、常見問題
Q1: 當輸入掃描地址并點擊開始后,程序無反應(yīng)。
A1: 產(chǎn)品沒有注冊,或沒有輸入注冊碼激活,請檢查您的許可證。
Q2: 安裝完成后,程序不能運行是怎么回事?
A2: UnisWebScanner是基于.NET框架構(gòu)建進行開發(fā)的,運行這樣的程序您需要首先安裝 .NET框架,當前最新版本是3.5 SP1,可以在
http://msdn.microsoft.com/en-us/netframework/default.aspx處進行下載。
Q3: 開始掃描網(wǎng)站后,馬上就結(jié)束了,為什么?
3: 指定的目標網(wǎng)站首頁可能是flash等文件,請?zhí)^該頁,指定一個包含該網(wǎng)站主要導航鏈接的“首頁”進行掃描。
Q4: 網(wǎng)站掃描了快10個小時了,還沒完,是不是出錯了?A4: 可能是指定的網(wǎng)站較大頁面數(shù)量較多,也可能是其他的原因,請及時聯(lián)系我們的技術(shù)服務(wù)團隊。
Q5: 謝謝您們的產(chǎn)品,但我希望能確定網(wǎng)站是否存在漏洞并獲得解決方案,能幫助我嗎?
A5: 是的。UnisWebScanner團隊多年來專注于Web安全研究,您可以隨時申請我們專業(yè)的服務(wù)支持。
四、 附錄
附錄1:HTTP狀態(tài)碼
摘自HTTP 協(xié)議(版本1.1)RFC 2616,詳細信息參見
http://www.ietf.org/rfc/rfc2616.txt
100: Continue
101: Switching Protocols
200: OK
201: Created
202: Accepted
203: Non-Authoritative Information
204: No Content
205: Reset Content
206: Partial Content
300: Multiple Choices
301: Moved Permanently
302: Found
303: See Other
304: Not Modified
305: Use Proxy
307: Temporary Redirect
400: Bad Request
401: Unauthorized
402: Payment Required
403: Forbidden
404: Not Found
405: Method Not Allowed
406: Not Acceptable
407: Proxy Authentication Required
408: Request Time-out
409: Conflict
410: Gone
411: Length Required
412: Precondition Failed
413: Request Entity Too Large
414: Request-URI Too Large
415: Unsupported Media Type
416: Requested range not satisfiable
417: Expectation Failed
500: Internal Server Error
501: Not Implemented
502: Bad Gateway
503: Service Unavailable
504: Gateway Time-out
505: HTTP Version not supported extension-code