陳春玲,張 凡,余 瀚
(南京郵電大學 計算機學院,江蘇 南京 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)使用 --> 主站蜘蛛池模板: 亚洲天堂网2014| 国产原创自拍不卡第一页| 国产人成在线视频| 呦女精品网站| 亚洲人成人无码www| av在线无码浏览| 国产午夜福利在线小视频| 2021无码专区人妻系列日韩| 亚洲美女一区二区三区| 亚洲国产成人自拍| 久久精品视频一| 91精品国产一区| 国产视频只有无码精品| 日韩欧美中文字幕在线精品| 欧美国产精品不卡在线观看| 成人永久免费A∨一级在线播放| 国产爽歪歪免费视频在线观看 | 国产成人盗摄精品| 99re热精品视频国产免费| 亚洲精品无码AⅤ片青青在线观看| 伊人久综合| 亚洲精品视频免费| 一本大道香蕉中文日本不卡高清二区| 欧美日韩中文国产| 国产91视频免费观看| 亚洲综合网在线观看| 国产91精品调教在线播放| 国产高清又黄又嫩的免费视频网站| 91色在线观看| 国产办公室秘书无码精品| 自慰网址在线观看| 人妻丝袜无码视频| 婷婷色中文网| 欧美一级一级做性视频| 日本色综合网| 亚洲中文在线视频| 一级毛片在线播放免费观看| 色综合网址| 亚洲天堂精品在线观看| 综合成人国产| www欧美在线观看| 国产精品男人的天堂| 8090成人午夜精品| 国产在线一区二区视频| 国产第一页免费浮力影院| 国产精品夜夜嗨视频免费视频| www精品久久| 六月婷婷精品视频在线观看| 欧美成人a∨视频免费观看| 午夜欧美理论2019理论| 99er精品视频| 久久精品只有这里有| 亚洲成AV人手机在线观看网站| 精品久久蜜桃| 最新亚洲人成无码网站欣赏网| 欧美自慰一级看片免费| 5388国产亚洲欧美在线观看| 国产地址二永久伊甸园| 99中文字幕亚洲一区二区| 日韩国产高清无码| 人妻免费无码不卡视频| 亚洲视频无码| 国产在线观看一区精品| 国产综合无码一区二区色蜜蜜| 91偷拍一区| 亚洲妓女综合网995久久 | 国产永久在线观看| 亚洲不卡影院| 国产日本一区二区三区| 日韩资源站| 久久特级毛片| 国产精品99一区不卡| 九九九精品成人免费视频7| 亚洲久悠悠色悠在线播放| 97国产成人无码精品久久久| 亚洲VA中文字幕| 五月天在线网站| 亚洲码一区二区三区| 2021天堂在线亚洲精品专区 | 亚洲国产综合第一精品小说| 美女扒开下面流白浆在线试听| 国产96在线 |