陳春玲,張 凡,余 瀚
(南京郵電大學 計算機學院,江蘇 南京 210003)
Web應用程序漏洞檢測系統設計
陳春玲,張 凡,余 瀚
(南京郵電大學 計算機學院,江蘇 南京 210003)
隨著Web技術的普及,Web漏洞對網絡安全的威脅越來越大。由于很多網站對用戶的輸入輸出內容過濾不嚴,導致各大網站中普遍存在跨站腳本漏洞,而現有的Web漏洞檢測方案及工具存在著效率低、漏檢率高、誤報率高等缺陷。為解決上述問題,設計并實現了一種Web應用中的跨站腳本漏洞檢測系統。該系統在現有Web漏洞檢測工具的基礎上,添加了模擬用戶登陸功能和驗證碼識別功能,解決了檢測期間需要輸入驗證碼或用戶登陸后才可向服務器提交數據的問題,并根據現有Web漏洞檢測工具的不足,對系統的網絡爬蟲、漏洞檢測模塊進行改進,同時根據XSS Filter過濾規則,構造出更多能夠繞過XSS Filter的測試用例。實驗結果表明,所構建的系統具有低漏檢率、低誤報率和較高的效率。
跨站腳本漏洞;Web應用;漏洞檢測;網絡爬蟲
隨著網絡的運用越來越廣泛,Web技術在人們生活的各個領域被廣泛利用,它使人們獲取信息更加快速、全面、便捷,使人們的生活更加舒適方便。然而它給人們的生活帶來便利的同時,卻存在著許多弊端,各種網絡犯罪事件不斷發生。因為目前眾多網站中存在各種各樣的Web應用漏洞,給了攻擊者可趁之機。在眾多Web漏洞中,跨站腳本漏洞(Cross Site Script,XSS)是Web應用中最為普遍的漏洞之一,近年來,有跨站腳本攻擊的安全事件層出不窮。如2011年新浪微博受到XSS攻擊,大量用戶被自動轉發各種微博與私信,并且對一個名為hellosamy的用戶自動關注。2014年,百度貼吧受到XSS攻擊,在多個貼吧中,點擊推廣貼會自動轉發到用戶所關注的所有貼吧中,并且導致吧友被封禁。
由于各種有關XSS攻擊的安全事件的發生,XSS漏洞得到了越來越多的重視。為找到Web應用程序中的XSS漏洞,研究者們提出了一系列自動化測試工具[1]。一般分為白盒脆弱性掃描工具[2]和黑盒Web應用程序測試工具[3]。雖然這些工具有助于識別XSS漏洞,但依然存在各種各樣的缺陷[1]。現有的漏洞檢測工具Paros可以對Web應用程序的安全性進行檢測,但其針對存儲型XSS漏洞的漏報率較高,并且測試用例提交模塊并沒有采用多線程,所以效率較低。針對XSS漏洞的掃描工具XSS ME只能分析單頁面且只對表單測試,忽略了可提交數據的URL。文獻[4]忽略了POST請求引起的XSS漏洞,而文獻[5]未對可提交數據的URL進行檢測。文獻[6]研究了只針對Flash的跨站腳本漏洞。
針對上述問題,高效,低誤報率和漏檢率的XSS漏洞檢測系統的設計成為研究熱點。為此,設計并實現了一個高性能的針對XSS漏洞的Web應用檢測系統。該系統可以從攻擊者的角度對Web應用進行模擬攻擊,監測是否有異常情況產生,從而挖掘Web應用中的XSS漏洞。
XSS跨站腳本漏洞是因為Web應用程序對用戶提交的數據沒有進行嚴格的過濾導致的,使攻擊者可以向Web應用提交惡意代碼。當普通用戶閱覽網站時,惡意代碼會自動執行,攻擊者可以利用跨站腳本漏洞竊取用戶信息,進行會話挾持、釣魚欺騙等。
根據XSS漏洞形成的原因和利用方法,可將其分為反射型XSS、存儲型XSS、基于DOM的XSS。
1.1反射型XSS
反射型XSS(Reflected XSS)又稱非持久型跨站腳本漏洞[7]。當客戶端向用戶提供數據時,對用戶數據沒有進行HTML實體編碼就將其包含在頁面中,那么動態頁面就可能被注入客戶端代碼。此類漏洞受攻擊的過程為:攻擊者編寫一個可利用此類漏洞的URL并發送郵件給用戶。用戶登錄站點,瀏覽了攻擊者構造的URL后,惡意代碼就會在用戶的瀏覽器中執行,盜取用戶信息。
1.2存儲型XSS
存儲型XSS又稱持久型跨站腳本漏洞。攻擊者將惡意代碼上傳到服務器,永久地保存在網站中,當用戶瀏覽這些網頁時就會受到攻擊,使得所有瀏覽這些網頁的用戶以及管理員都面臨信息被泄露的危險,因此存儲型XSS漏洞的危害極大。
1.3基于DOM的XSS
又稱本地跨站腳本漏洞,此類漏洞是服務器執行腳本時自身產生的惡意內容[8-9]。對于此類漏洞,在客戶端提交的數據如果含有惡意代碼,并且沒有經過過濾,Web應用程序就會受到攻擊。此類漏洞的利用過程為:供給者惡意構造一個URL發送給用戶,用戶點擊此URL后,含有漏洞的頁面就會被安裝在電腦上,此頁面是在本地域所執行的腳本中,惡意腳本可執行用戶權限下的命令。
目前現有的Web漏洞檢測工具的檢測過程是通過網絡爬蟲對待檢測網站進行頁面爬取和信息提取,得到網站中的URL和Form表單信息,交給漏洞檢測模塊進行漏洞檢測。但現有的Web漏洞檢測工具檢測過程中常常會遇到一些問題。如:非用戶登錄狀態不能獲取頁面或提交數據,需要輸入驗證碼才能提交到服務器等情況。為解決這些問題,系統添加了模擬登錄模塊和驗證碼識別輸入模塊并對網絡爬蟲和測試用例的生成進行改進。系統總體結構見圖1。

圖1 系統總體結構
2.1模擬登錄模塊設計及實現
很多網站的一些頁面只有在用戶登錄后才可以打開或評論、留言,這說明在非登錄狀態下,爬蟲不能獲取這些頁面,漏洞檢測模塊不能像這些頁面提交測試用例。因此系統添加了能夠模擬用戶登錄的模擬登錄模塊,使系統在登錄的狀態下進行網絡爬蟲頁面爬取和攻擊數據提交,避免網頁爬取遺漏和數據無法提交到服務器。
模擬登錄模塊中設計了getHtml()函數,向登錄頁面發送http的get請求,以獲取登錄頁面內容得到表單信息,通過對標簽的提取,獲取需要提交的參數。Userpost()函數模擬表單提交,將用戶名、密碼和其他需要提交的參數通過http的post請求提交到服務器。對返回結果進行分析,判斷是否登錄成功,如果成功,存儲當前cookie值。
2.2驗證碼識別模塊
用戶向網頁提交數據時,如留言、注冊等,往往會遇到需要輸入驗證碼的情況,如果驗證碼輸入不正確或為空,數據將無法提交到服務器。漏洞檢測模塊向網頁提交測試用例時遇到這種情況,同樣需要提交正確的驗證碼,因此需要驗證碼識別模塊來獲取正確的驗證碼。
通過http請求獲取html頁面信息,解析網頁信息,在form表單中解析出驗證碼圖片的URL,驗證碼識別模塊將驗證碼圖片下載保存到本地。通過對其進行二值化去除背景,與樣本進行像素比較等過程獲得驗證碼對應的字符。
2.3網絡爬蟲模塊
網絡爬蟲模塊能夠快速、準確、全面地爬取網頁鏈接,是整個漏洞檢測系統的基礎。網絡爬蟲模塊采用廣度優先爬取策略,由待爬取URL隊列、form表單隊列、可疑URL隊列、網頁抓取模塊、網頁解析模塊、URL去重模塊組成。待爬取URL隊列存儲還未被解析網頁的URL,網頁抓取模塊向服務器發送http請求獲取網頁內容,網頁解析模塊對獲取的網頁內容進行分析,提取有用的信息,form表單隊列存儲解析出的form表單信息,可疑URL隊列存儲可提交內容的URL,URL去重模塊對重復的URL進行消除。
為提高爬蟲系統的工作效率,采用多線程的方法對網頁進行爬取,當種子URL爬取結束后,對種子URL上的所有網頁鏈接同時進行爬取。多個爬蟲同時工作,網絡爬蟲模塊工作的時間縮短了數倍,大大提高了網絡爬蟲的工作效率。
爬蟲模塊的設計思想是將待檢測網站看成樹形結構,網站中的網頁可看作是樹中的節點。開始爬取的種子URL為樹的根節點,Depth值為1,網頁中所含的超鏈接的Depth值為此網頁的Depth+1,Depth值代表節點在樹中的深度,即網頁在網站中的深度。在爬蟲爬取網頁前,需先定義爬取的最大深度MaxDepth。網絡爬蟲單個線程算法的具體過程為:
(1)定義一個URL為開始爬取的種子URL,其Depth為1,將URL和Depth值存入帶爬取URL隊列。
(2)判斷待爬取URL隊列是否為空,如果不為空,就從隊列中取出一個待爬取URL及其Depth值;如果為空,結束循環。
(3)向服務器發送http請求,獲取網頁信息。
(4)網頁解析模塊對獲取的網頁內容進行解析,獲取表單信息和超鏈接。超鏈接提取:超鏈接一般存在于、、
(5)判斷是否從網頁信息中提取到了form表單信息,如果存在,將URL和提取出的form表單信息存入form表單隊列。
(6)判斷URL是否為可提交數據的URL,如果是,將URL存入可疑URL隊列。
(7)判斷網頁的Depth值是否小于MaxDepth,如果小于,去重模塊對步驟(4)提取出的超鏈接進行去重處理,將去重后的超鏈接隊列和其Depth值存入待爬取URL隊列,其Depth值為原網頁的Depth值+1。
(8)跳轉到步驟(2)。
網絡爬蟲模塊流程見圖2。

圖2 網絡爬蟲模塊流程圖
2.4URL去重
一般常見的URL消重算法有:建立數據庫對URL進行對比去重、hash映射去重、MD5加密映射去重、Boolm filter去重[10]、MD5去重樹[11]等。其中Boolm filter去重較前三種去重方法具有效率高、節省空間等優點,雖然沒有MD5去重樹速度快,但其產生沖突可能性小。因此,此系統選用Boolm filter去重方法對URL進行過濾。
Boolm filter是Burton Bloom提出的一種高效、高空間利用率的數據結構[10]。它是一種space efficient的概率型數據結構,用于判斷一個元素是否在集合中。它由k個hash函數和1個很長的二進制向量組成。基本思想是:一個長度為m的位數組和k個哈希函數,每個函數都能將元素映射到位數組中,對每個元素用k個哈希函數計算k次,得到位置P1,P2,…,Pk,查詢下標為P1,P2,…,Pk的位,如果都為1,則認為該元素存在集合中[12]。
2.5測試用例生成模塊
XSS漏洞測試用例有4種生成方法:
(1)使用 --> 主站蜘蛛池模板: 国产欧美精品专区一区二区| 久久黄色毛片| 久久精品娱乐亚洲领先| 国产91高跟丝袜| a级毛片免费看| 欧美成人手机在线观看网址| 伊人网址在线| h视频在线观看网站| 99久久婷婷国产综合精| 一边摸一边做爽的视频17国产| 亚洲va欧美va国产综合下载| 中日韩欧亚无码视频| a亚洲视频| 中文字幕 91| 久久综合婷婷| 国产精品极品美女自在线| 91在线国内在线播放老师| 国产激情第一页| 国产jizz| 四虎永久在线| 国产欧美日韩资源在线观看| 8090成人午夜精品| 国产精品偷伦视频免费观看国产| 国产在线八区| 亚洲区欧美区| 麻豆精品视频在线原创| 青青操视频在线| 伊人久久福利中文字幕 | 国产欧美精品一区aⅴ影院| 欧美不卡视频在线观看| 亚洲天堂视频在线观看免费| 91精品久久久无码中文字幕vr| 国产乱人伦偷精品视频AAA| 91小视频在线观看| 精品国产美女福到在线直播| 亚洲日韩每日更新| 亚洲女同一区二区| 奇米精品一区二区三区在线观看| 在线国产91| 国产丝袜无码一区二区视频| 国产激情影院| 国产理论一区| 看av免费毛片手机播放| 夜夜操国产| 伊人久久大香线蕉aⅴ色| 国产三级成人| 欧美日韩一区二区三区四区在线观看| 亚洲国产一成久久精品国产成人综合| 国产精品.com| 激情六月丁香婷婷| 亚洲国语自产一区第二页| www.狠狠| 97色伦色在线综合视频| 色成人亚洲| 亚洲天堂自拍| 国产黄色片在线看| 99久久精品国产麻豆婷婷| 欧美亚洲香蕉| 国产成人综合久久精品尤物| 国产精品护士| 国产尹人香蕉综合在线电影| 国产精品页| 亚洲日产2021三区在线| 怡红院美国分院一区二区| 国产精品自在在线午夜区app| 无遮挡国产高潮视频免费观看| 黄色在线不卡| 亚洲日产2021三区在线| 欧美精品1区2区| 91福利一区二区三区| 一级在线毛片| 天堂成人av| 日韩第八页| 久久精品娱乐亚洲领先| 东京热高清无码精品| 国产成人精品一区二区三在线观看| 熟女视频91| 中文成人在线视频| 在线播放真实国产乱子伦| aa级毛片毛片免费观看久| 综合人妻久久一区二区精品 | 国产成人免费观看在线视频|