對(duì)于網(wǎng)站管理員來(lái)說(shuō),在創(chuàng)建和維護(hù)網(wǎng)站運(yùn)行過(guò)程中,最擔(dān)心的就是來(lái)自黑客的惡意攻擊。對(duì)于黑客來(lái)說(shuō),在確定了攻擊的目標(biāo)網(wǎng)站后,會(huì)先使用各種掃描工具,來(lái)全面的檢測(cè)該網(wǎng)站是否存在漏洞。當(dāng)發(fā)現(xiàn)了可以利用的漏洞后,黑客才會(huì)使用相應(yīng)的手段對(duì)其進(jìn)行滲透和攻擊。在一般情況下,管理員只有在發(fā)現(xiàn)網(wǎng)站被黑客破壞后才會(huì)著手修復(fù)網(wǎng)站漏洞,這其實(shí)比較被動(dòng),為提高防御靈活性,管理員可以未雨綢繆,使用強(qiáng)悍掃描工具,對(duì)網(wǎng)站進(jìn)行安全檢測(cè),及時(shí)發(fā)現(xiàn)并修復(fù)潛在的漏洞,不給黑客以可乘之機(jī)。
圖1 開(kāi)啟新的掃描項(xiàng)目
使 用Acunetix Web Vulnerability Scanner(AWVS) 掃描工具可讓網(wǎng)站的漏洞徹底顯示在管理員面前。在AWVS主界面工具欄中點(diǎn)擊“New Scan”按鈕,如圖 1,在新建掃描向?qū)Т爸羞x擇“Scan Single Website”選項(xiàng),輸入要檢測(cè)的網(wǎng)站。如果想同時(shí)掃描多個(gè)網(wǎng)站,可以點(diǎn)擊窗口底部的“http://localhost:8181”鏈接,打開(kāi)Web方式的掃描界面,點(diǎn)擊其中的“+Schedule New Scan”選項(xiàng),選擇“掃描類(lèi)型”選項(xiàng),輸入目標(biāo)網(wǎng)站等信息,點(diǎn)擊“OK”按鈕,來(lái)執(zhí)行具體的掃描操作。
這里選擇前者,在“下一步”窗口中的“Scaning Profile”列表中選擇“掃描策略”,包括“AcuSebsor”(交互式應(yīng)用安全檢測(cè))、“Bind_SQL_Injection”(SQL盲注測(cè)試)、“CSRF”(跨站請(qǐng)求偽造)、“Default”(默認(rèn)檢測(cè)所有漏洞)等。在“Scan Settings”欄中點(diǎn)擊“Customize”按鈕,可以自定義掃描規(guī)則,默認(rèn)為“Default”。
依次點(diǎn)擊“下一步”按鈕,在“Target”窗口中會(huì)顯示該網(wǎng)站的基本信息,例如服務(wù)器Banner、系統(tǒng)類(lèi)型、Web服務(wù)器版本等內(nèi)容。打開(kāi)“Optimize for Following Technologies”欄,在列表中選擇目標(biāo)網(wǎng)站的類(lèi)型,例如ASP、PHP、ASP.NET、Python和Perl等。這樣可以實(shí)現(xiàn)更加精準(zhǔn)的掃描。
如果掃描的網(wǎng)站(例如辦公網(wǎng)站等)需要預(yù)先登錄的話,還需要在“下一步”窗口中點(diǎn)擊“New Login Sequence”按鈕,登錄到目標(biāo)網(wǎng)站中,為之后的掃描做好準(zhǔn)備。當(dāng)在AWVS對(duì)網(wǎng)站構(gòu)成元素分析完成后,點(diǎn)擊“Finish”按鈕,就可以執(zhí)行具體的掃描操作了。在AWVS主界面的“Scan Results”信息欄中顯示掃描的各種信息。
當(dāng)掃描完成后,在報(bào)告界面中的“Web Alerts”列表顯示該網(wǎng)站的安全漏洞和潛在的安全風(fēng)險(xiǎn)項(xiàng)目,在“Site Structure”列表同時(shí)顯示其詳細(xì)的目錄和文件結(jié)構(gòu)以及對(duì)應(yīng)的風(fēng)險(xiǎn)信息。選擇對(duì)應(yīng)的安全漏洞(例如“Cross Sitr Script”,“Blind SQL Injection”等)項(xiàng)目,在右側(cè)顯示其具體的說(shuō)明信息。在“Web Alerts”列表中打開(kāi)選擇的安全漏洞項(xiàng)目,可以列出屬于該漏洞的所有風(fēng)險(xiǎn)信息。在右側(cè)的“Alerts Summary”欄中顯示發(fā)現(xiàn)的風(fēng)險(xiǎn)信息的數(shù)量,其中紅色“High”欄顯示高危漏洞數(shù)量,橘色的“Medium”欄中表示中等危險(xiǎn)漏洞數(shù)量,藍(lán)色“Low”欄中顯示一般的風(fēng)險(xiǎn)漏洞數(shù)量,綠色的“Information”欄表示一般的存在泄漏信息風(fēng)險(xiǎn)的信息項(xiàng)目。
“Target Information”欄中顯示目標(biāo)網(wǎng)站的基本描述信息,在“Statistcs”欄中顯示掃描統(tǒng)計(jì)信息,在“Progress”欄中顯示掃描進(jìn)度信息。根據(jù)這些檢測(cè)信息,管理員就可以對(duì)網(wǎng)站存在的各種漏洞做到心中有數(shù),進(jìn)而有的放矢的采取各種措施,來(lái)修復(fù)這些漏洞,讓網(wǎng)站的安全風(fēng)險(xiǎn)降至最低。為了便于保存掃描信息,可以點(diǎn)擊保存按鈕,將其導(dǎo)出了獨(dú)立的文件(后綴為“.wvs”)。之后可以隨時(shí)雙擊該文件,在AWVS中將其打開(kāi)。
合理的配置掃描規(guī)則,可以提高掃描的速度和準(zhǔn)確性。在AWVS主界面左側(cè)依次 點(diǎn) 擊“Configuration”、“Scan Settings”選項(xiàng),在右側(cè)選擇“Scanning Options”選 項(xiàng), 選 擇“Disable Alert Generate by Crawler”選 項(xiàng),禁止產(chǎn)生無(wú)關(guān)的錯(cuò)誤 提 示。 在“Scan mode”列表中提供了“Quick”(快速掃描)、“Heuristic”(標(biāo)準(zhǔn)掃描)以及“Extensive”(完全掃描)等掃描模式,其掃描速度依次降低,但是掃描的深度卻依次增加,掃描的精確度也依次增加,可以根據(jù)需要進(jìn)行選擇。在“Limit Crawl Recursion X Iteratuions”欄中設(shè)置針對(duì)目標(biāo)網(wǎng)站目錄層級(jí)的探測(cè)深度,默認(rèn)為5。選擇“Enable Port Scanning”選項(xiàng)可允許端口掃描。選擇“Collect Uncommon HTTP Requests”選項(xiàng),開(kāi)啟收集非標(biāo)準(zhǔn)HTTP請(qǐng)求信息。在“List of Hosts Allowed”拉面中可以啟用子域名掃描功能,輸入子域名,點(diǎn)擊“Add Host”按鈕,將其添加到列表中。如圖2所示。這樣,可以實(shí)現(xiàn)針對(duì)子域名/分站點(diǎn)的掃描操作。
圖2 配置掃描參數(shù)
在窗口中部選擇“Headers and Cookies”項(xiàng),在右側(cè)選擇“Test Cookie for All Files”項(xiàng),可以探測(cè)所有文件的Cookie信息。例如可以針對(duì)所有網(wǎng)站訪問(wèn)連接產(chǎn)生的Cookie信息進(jìn)行記錄,從而得到更詳細(xì)的信息。點(diǎn)擊“Add Header”按鈕,可以添加新的HTTP頭信息項(xiàng)目,使掃描結(jié)果更加準(zhǔn)確。對(duì)于不同的網(wǎng)站來(lái)說(shuō),其使用HTTP頭部信息存在差異。例如使用HTTPWatch這一抓包工具,可以記錄在訪問(wèn)目標(biāo)網(wǎng)站時(shí)使用到的HTTP頭部信息。在中部選擇“Parameter Exclusions”項(xiàng),在右側(cè)可以設(shè)置包含的參數(shù),包括地址、名稱(chēng)、類(lèi)型、動(dòng)作等,例如可以將名稱(chēng)為“PHPSESSION”參數(shù)排除在外,避免其影響正常的掃描操作。點(diǎn)擊“Remove Selected”按鈕,可以刪除選定的參數(shù)信息,即允許掃描該參數(shù)信息。這對(duì)于掃描一些特殊的網(wǎng)站比較有用。
例如按照上述格式,輸 入“*”、“ASPXSESSION”、“Any”、“Exclude from Scan” 項(xiàng),點(diǎn)擊“Add Exclusion”按鈕,可以將所有包含“ASPXSESSION”的網(wǎng)頁(yè)排除在掃描范圍之外。在中部選擇“Crawling Options”項(xiàng),在右側(cè)可以依次設(shè)置針對(duì)目標(biāo)網(wǎng)站目錄和文件層級(jí)的項(xiàng)目,依次包括當(dāng)網(wǎng)站目錄結(jié)構(gòu)掃描之后啟動(dòng)HTTP Sniffer來(lái)發(fā)現(xiàn)更多的鏈接,只掃描首頁(yè),不抓取上級(jí)目錄,抓取子目錄,抓取所有URL(即使該URL并沒(méi)有體現(xiàn)在網(wǎng)站上),抓取并分析robots.txt、sitemap.xml中的URL,忽略大小寫(xiě)敏感,分析動(dòng)態(tài)腳本以獲得更多URL,抓取外部腳本內(nèi)容,嘗試抓取每個(gè)目錄下的默認(rèn)文檔,防止抓取到無(wú)限目錄,如果發(fā)現(xiàn)重定向則提示用戶(hù),忽略js/css等文件的參數(shù),禁用自動(dòng)判斷404頁(yè)面功能,將www和純域名識(shí)別為不同的主機(jī)、文件參數(shù)的最大變化范圍、鏈接最大深度、子目錄最大深度、子目錄的最大數(shù)量、目錄中的最大文件數(shù)量、判斷路徑任務(wù)的最大任務(wù)數(shù)、搜索的最大文件數(shù)等。
在中部選擇“File Exclusion Filter”選項(xiàng),在右側(cè)設(shè)置檢測(cè)和排除的文件類(lèi)型,這樣可以提高文件搜索的速度。選擇“Directory and File Filters”選 項(xiàng),在右側(cè)設(shè)置需要排除掃描的網(wǎng)站目錄。選擇“URL Rewrite”選項(xiàng),在右側(cè)可以設(shè)置網(wǎng)址的重寫(xiě)規(guī)則。在中部選擇“HTTP Options”選項(xiàng),在右側(cè)的“User Agent String”列表中選擇用戶(hù)的User Agent信息,讓服務(wù)器可以返回合適的回應(yīng)信息。 在“Limit Number of Parallel Connections”欄中設(shè)置最大并發(fā)連接數(shù)。在“HTTP Request Timeout in Seconds”欄中設(shè)置超時(shí)時(shí)間。在“Delay between Consecutive Requests in Milliseconds”欄中設(shè)置請(qǐng)求延時(shí),在“HTTP Response Size Limit in Kilobytes”欄中設(shè)置請(qǐng)求的文件的最大體積,在“Custom HTTP Headers”欄中可以自定義HTTP頭信息。如果是使用HTTP或者SOCKS代理上網(wǎng)的話,在中部選擇“LAN Settings”選項(xiàng),設(shè)置所需的代理信息。
選擇“Custom Cookies”選項(xiàng),在右側(cè)可以自定義Cookie,來(lái)實(shí)現(xiàn)預(yù)登錄功能。 選 擇“Input Fileds”選項(xiàng),在右側(cè)可以設(shè)置表單項(xiàng)的默認(rèn)值信息,例如用戶(hù)名和密碼項(xiàng)等信息。這樣當(dāng)執(zhí)行掃描時(shí),可以在表單上自動(dòng)填充對(duì)應(yīng)項(xiàng)目的預(yù)設(shè)值。在列表中顯示AWVS自帶的表單項(xiàng)目,其中的“${alpharand}”正則表達(dá)式表示隨機(jī)字符串,“$[numrand}”表示隨機(jī)數(shù)字,“${alphanumrand}” 則表示隨機(jī)數(shù)字和隨機(jī)字符串等。這樣,可以實(shí)現(xiàn)靈活的表單項(xiàng)填充功能。選擇“Port Scanner”選項(xiàng),在右側(cè)的“Number of Sockets Used for Scanning”欄中設(shè)置掃描線程數(shù)量,在“Connection Timeout”欄中設(shè)置超時(shí)時(shí)間,在列表中顯示掃描的端口信息,可根據(jù)需要來(lái)進(jìn)行選擇或者更改端口號(hào)。
當(dāng)設(shè)置好所需的掃描參數(shù)后,可以點(diǎn)擊“Apply”按鈕,保存配置信息。當(dāng)然,為了便于使用,可以先點(diǎn)擊參數(shù)設(shè)置界面工具欄上的“新建”按鈕,創(chuàng)建新的參數(shù)配置文件,之后再執(zhí)行具體的配置操作。這樣,可以針對(duì)不同的掃描環(huán)境,靈活的使用不同的掃描參數(shù)。
當(dāng)然,在掃描某些網(wǎng)站時(shí),可能需要進(jìn)行登錄操作,為了便于操作,可以點(diǎn)擊 菜 單“Configuration”、“A p p l i c a t i o n s” 選項(xiàng),在 其 中 點(diǎn) 擊“HTTP Authentication”選項(xiàng),在右側(cè)點(diǎn)擊“Add Credentials”項(xiàng),輸入賬戶(hù)名和密碼,并設(shè)置好主機(jī)的網(wǎng)站以及路徑路徑(例 如“xxx.com/admin/”等),這樣,即可以在執(zhí)行掃描時(shí)順利的完成登錄操作。
此外,也可以點(diǎn)擊“Login Sequence Manager”選項(xiàng),在向?qū)Ы缑嬷休斎刖唧w的登錄地址(例如“http:.//www.xxx.com/admin/login.asp”等),點(diǎn)擊“下一步”,執(zhí)行登錄操作,當(dāng)?shù)卿浲瓿珊螅珹WVS就可以將整個(gè)的登錄環(huán)節(jié)完整記錄下來(lái)。之后進(jìn)行掃描時(shí),就可以非常順利的對(duì)目標(biāo)網(wǎng)站進(jìn)行深入分析了。