91精品人妻互换日韩精品久久影视|又粗又大的网站激情文学制服91|亚州A∨无码片中文字慕鲁丝片区|jizz中国无码91麻豆精品福利|午夜成人AA婷婷五月天精品|素人AV在线国产高清不卡片|尤物精品视频影院91日韩|亚洲精品18国产精品闷骚

您當(dāng)前位置:首頁(yè) > 新聞?lì)l道 > 技術(shù)動(dòng)態(tài) > 正文
基于網(wǎng)絡(luò)爬蟲(chóng)與頁(yè)面代碼行為的XSS漏洞動(dòng)態(tài)檢測(cè)方法

 柳毅.洪俊斌

 (廣東工業(yè)大學(xué)計(jì)算機(jī)學(xué)院,廣東廣州510006)

  摘  要:xss漏洞是攻擊Web應(yīng)用程序、獲取用戶(hù)隱私數(shù)據(jù)的常見(jiàn)漏洞。傳統(tǒng)的xss漏洞檢測(cè)工具并沒(méi)有對(duì)AJAX Web應(yīng)用程序進(jìn)行針對(duì)性的檢測(cè),在檢測(cè)精度方面與實(shí)際情況存在巨大差距。針對(duì)這種情況,對(duì)AJAX技術(shù)下XSS漏洞的特點(diǎn)進(jìn)行了分析,提出了一種基于網(wǎng)絡(luò)爬蟲(chóng)與頁(yè)面代碼行為的動(dòng)態(tài)檢測(cè)方法。實(shí)驗(yàn)結(jié)果表明,提出的方法在節(jié)省人力、時(shí)間成本與漏洞檢測(cè)方面有較好的表現(xiàn)。

  關(guān)鍵詞:xss漏洞;網(wǎng)絡(luò)爬蟲(chóng);漏洞檢測(cè);AJAX Web應(yīng)用

  中圖分類(lèi)號(hào):TP393.08 doi: 10.11959/j.issn.1000-0801.2016068

1引言

 隨著Web 2.0時(shí)代的到來(lái),Web程序告別了沉重的請(qǐng)求一返回的模式,采用了更輕便的局部刷新模式,提高了用戶(hù)體驗(yàn)。其中,AJAX(asynchronous JavaScript and XML,異步JavaScript和XML)…技術(shù)在Web 2.0中占據(jù)了主導(dǎo)地位。然而AJAX技術(shù)將一部分邏輯處理從服務(wù)器端轉(zhuǎn)移到客戶(hù)端,暴露了更多的接口,增加了許多針對(duì)Web應(yīng)用程序的安全威脅,其中嚴(yán)重程度最高的是跨站腳本(cross-site script,又稱(chēng)XSS)攻擊。從國(guó)際開(kāi)源安全組織(Open Web Application Security Project,OWASP)公布的10種最嚴(yán)重的Web應(yīng)用程序安全漏洞排行榜可知,跨站腳本攻擊一直處于前三的位置。Web 2.0時(shí)代后,跨站腳本攻擊與AJAX技術(shù)相結(jié)合,出現(xiàn)了新的特點(diǎn),可在用戶(hù)毫不知情的情況下進(jìn)行攻擊,威脅性更大。就目前而言,采取較多的行為都是被動(dòng)的防范措施,比如防火墻等。這樣做明顯忽略了應(yīng)用程序級(jí)別的安全問(wèn)題,使之在高層面缺乏有效的防范方式。對(duì)于Web應(yīng)用程序級(jí)別的安全,雖然有很多學(xué)者進(jìn)行了研究,但大多數(shù)還停留在Web 1.0時(shí)代,并沒(méi)有對(duì)異步傳輸進(jìn)行安全性檢測(cè)。雖然對(duì)AJAX有所提及,但并沒(méi)有進(jìn)行針對(duì)性的研究。所以針對(duì)大量使用AJAX技術(shù)的Web應(yīng)用程序,設(shè)計(jì)相關(guān)的XSS漏洞檢測(cè)工具是十分必要的。

 本文提出了一種基于網(wǎng)絡(luò)爬蟲(chóng)與頁(yè)面代碼行為的動(dòng)態(tài)檢測(cè)方法對(duì)AJAX Web應(yīng)用程序進(jìn)行XSS漏洞檢測(cè)。針對(duì)用戶(hù)提交的URL(uniform resource locator.統(tǒng)一資源定位符)進(jìn)行爬蟲(chóng),提取數(shù)據(jù)輸入點(diǎn),完成錯(cuò)誤數(shù)據(jù)注入,再通過(guò)模擬攻擊對(duì)服務(wù)器進(jìn)行請(qǐng)求,對(duì)返回的頁(yè)面代碼行為進(jìn)行跟蹤與分析,得出XSS漏洞威脅。實(shí)驗(yàn)證明該方法效率較高,漏報(bào)率較低。

2 XSS漏洞特征及檢測(cè)工具分析

2.1 XSS漏洞特征分析

 現(xiàn)有的XSS漏洞類(lèi)型可分為3種基本類(lèi)型:反射型XSS攻擊(reflected/non-persistent  XSS)、存儲(chǔ)型XSS攻擊(stored/persistent XSS)和基于DOM (document objectmodel)的XSS攻擊(DOM-based XSS)。反射型XSS攻擊方式是通過(guò)服務(wù)器的錯(cuò)誤信息或檢索結(jié)果等手段將注入代碼“反射”回來(lái)。攻擊者構(gòu)造包含注入代碼的惡意鏈接,并通過(guò)某種方式將此惡意鏈接發(fā)送給受害者,受害者點(diǎn)擊訪問(wèn)后,注入腳本便會(huì)將服務(wù)器返回的數(shù)據(jù)傳輸?shù)焦粽叩姆⻊?wù)器上:存儲(chǔ)型XSS與反射型XSS最大的不同在于,惡意腳本將被永久性地存放在目標(biāo)服務(wù)器的數(shù)據(jù)庫(kù)中,瀏覽者在訪問(wèn)時(shí)惡意腳本便會(huì)執(zhí)行,使瀏覽者受到攻擊:在基于DOM的XSS這類(lèi)攻擊方式中,攻擊者是通過(guò)以下過(guò)程執(zhí)行JavaScript的:攻擊者設(shè)計(jì)有注入JavaScript代碼的惡意URL,并發(fā)送給用戶(hù),用戶(hù)進(jìn)行點(diǎn)擊訪問(wèn),瀏覽器會(huì)將返回的HTML(hypertext markup language.超文本標(biāo)記語(yǔ)言)代碼解析成DOM樹(shù)結(jié)構(gòu),在這過(guò)程中,注入代碼便會(huì)被解析出來(lái),從而導(dǎo)致基于DOM的XSS攻擊出現(xiàn),攻擊者就有可能獲取受害者電腦的重要權(quán)限。

2.2 XSS漏洞的檢測(cè)方法及工具

 高效率的爬蟲(chóng)算法能夠在短時(shí)間內(nèi)找到數(shù)據(jù)輸入點(diǎn),并且根據(jù)數(shù)據(jù)輸入點(diǎn)的類(lèi)型,從數(shù)據(jù)庫(kù)中獲取錯(cuò)誤注入數(shù)據(jù),組成有攻擊性的get/post請(qǐng)求注入系統(tǒng)中,如果產(chǎn)生與從數(shù)據(jù)庫(kù)中獲取的注入數(shù)據(jù)相對(duì)應(yīng)的預(yù)期攻擊行為,就可以斷定Web應(yīng)用程序中存在XSS漏洞。在錯(cuò)誤數(shù)據(jù)進(jìn)行注入的同時(shí),要注意對(duì)程序中的合法過(guò)濾器進(jìn)行規(guī)避。目前有很多XSS漏洞掃描的工具,比如Paros和X5S,它們并沒(méi)有對(duì)AJAX技術(shù)下產(chǎn)生的XSS漏洞進(jìn)行深入分析。針對(duì)這種情況,提出了一種基于網(wǎng)絡(luò)爬蟲(chóng)與頁(yè)面代碼行為的動(dòng)態(tài)檢測(cè)方法來(lái)實(shí)現(xiàn)對(duì)AJAX Web應(yīng)用程序的XSS漏洞進(jìn)行檢測(cè)。

3 XSS漏洞定位檢測(cè)方法

3.1  抓取數(shù)據(jù)輸入點(diǎn)

 抓取數(shù)據(jù)輸入點(diǎn)的步驟如下:

 (1)爬蟲(chóng)對(duì)Web頁(yè)面的HTML代碼進(jìn)行掃描得到靜態(tài)URL;

 (2)對(duì)頁(yè)面代碼中的JavaScript腳本和JavaScript所添加的事件進(jìn)行提。

 (3)將提取到的JavaScript代碼傳遞給JavaScript引擎編譯執(zhí)行,獲取動(dòng)態(tài)URL;

 (4)存儲(chǔ)獲取到的URL,采用散列表存儲(chǔ)方式高效率地將重復(fù)URL去除。

 散列表中使用了雙重散列算法來(lái)解決沖突,其探測(cè)地址的方法如下:

 二度散列的h(URL,i)的值有可能會(huì)大于hashcapacity,所以對(duì)h(URL,i)進(jìn)行模運(yùn)算,最終計(jì)算的散列地址為h(URL,i)% hashca pacity。

 爬蟲(chóng)系統(tǒng)分為下載與分析兩個(gè)模塊,使用多線(xiàn)程同時(shí)運(yùn)行兩個(gè)模塊以提高爬蟲(chóng)效率,如果硬件條件高,可分別在各個(gè)模塊中再次使用多線(xiàn)程進(jìn)行下載與分析。圖1是爬蟲(chóng)系統(tǒng)運(yùn)行的流程。

3.2錯(cuò)誤數(shù)據(jù)注入

 錯(cuò)誤數(shù)據(jù)注入的步驟如下:

 (1)從爬蟲(chóng)系統(tǒng)的散列表中,依次取出鏈接地址進(jìn)行請(qǐng)求,并分析得到頁(yè)面代碼;

 (2)提取代碼中所有的表單元素;

 (3)根據(jù)表單屬性(get/post)、頁(yè)面代碼和輸入?yún)^(qū)域的結(jié)構(gòu)對(duì)象計(jì)算出散列值;

 (4)根據(jù)散列值關(guān)聯(lián)數(shù)據(jù)庫(kù)中自定義注入代碼進(jìn)行拼接,對(duì)服務(wù)器發(fā)出請(qǐng)求。

圖2是錯(cuò)誤數(shù)據(jù)注入的流程。

 攻擊字符串是檢測(cè)漏洞的關(guān)鍵部分,用數(shù)據(jù)庫(kù)中的注入代碼來(lái)構(gòu)造有威脅的URL、表單或AJAX XML Http Request對(duì)象,向服務(wù)器發(fā)送請(qǐng)求。結(jié)合JavaScript的執(zhí)行效果和語(yǔ)法,針對(duì)表單、URL和XML Http Request對(duì)象類(lèi)型的攻擊漏洞,表1列舉了部分攻擊字符串。

3.3結(jié)果分析

3.3.1基于AJAX頁(yè)面代碼行為的XSS漏洞檢測(cè)算法

 (1)增量地構(gòu)建AJAX返回的DOM樹(shù)狀態(tài);

 (2)記錄返回?cái)?shù)據(jù)后的頁(yè)面代碼行為;

 (3)檢測(cè)返回的代碼行為是否出現(xiàn)相對(duì)應(yīng)的惡意行為,判斷是否存在XSS漏洞。

 偽代碼設(shè)計(jì)如下:

 For each pages tate in State Queue.Dequeue()(存儲(chǔ)隊(duì)列中的狀態(tài)出列)

 Browser Control.Get State (pages tate)(獲取頁(yè)面的HTML行為)

 Boolean has XSS*-De tec t XSS( pages tate)

 If has XSS then

 Write To DataBase(URL)

 End If

 Browser Control. GetState ( pages tate)

 End For each

 3.3.2基于JavaScript的XML Http Request檢測(cè)

 在JavaScript代碼中,最關(guān)鍵的是XHR(XML Http Request,可擴(kuò)展超文本傳輸請(qǐng)求)對(duì)象。該對(duì)象可以異步地向服務(wù)器發(fā)出請(qǐng)求,獲取新數(shù)據(jù),然后通過(guò)DOM將數(shù)據(jù)插入頁(yè)面中進(jìn)行局部刷新。這給攻擊者留下了一個(gè)很大的漏洞,攻擊者可使用XHR對(duì)象,注入錯(cuò)誤代碼,因此必須對(duì)AJAX XHR的漏洞檢測(cè)進(jìn)行特殊處理。

 (1)收集JavaScript的文件信息,比如大小、文件名等,構(gòu)建JavaScript文件特征庫(kù)。

 (2)檢測(cè)時(shí)將頁(yè)面獲取的JavaScript文件與文件特征庫(kù)中的文件進(jìn)行匹配判斷是否存在漏洞。

  偽代碼設(shè)計(jì)如下:

4  實(shí)驗(yàn)結(jié)果及分析

 為驗(yàn)證本文提出方法的可行性,采用Visual Studio2015對(duì)本文提出的方法進(jìn)行C#編程實(shí)現(xiàn)XSS Finder工具,硬件方面主要采用主流的IBM-PC兼容機(jī),數(shù)據(jù)庫(kù)為SQLS erver 2008 R2。下面從時(shí)間復(fù)雜度和檢測(cè)精度方面來(lái)評(píng)估XSS Finder工具。

4.1  時(shí)間復(fù)雜度

 為對(duì)比XSS Finder在時(shí)間復(fù)雜度上的優(yōu)勢(shì),選用了常用的XSS漏洞檢測(cè)工具Paros和x5s進(jìn)行對(duì)比。采取方法是對(duì)每個(gè)Web應(yīng)用程序獨(dú)立掃描20次,算出平均掃描時(shí)間。圖3是3個(gè)軟件進(jìn)行掃描的時(shí)間對(duì)比。

 由圖3可知,XSS Finder工具所消耗的時(shí)間是較低的。

4.2檢測(cè)精度

 對(duì)比XSS Finder與兩個(gè)軟件的檢測(cè)精度,采取的方法是選擇兩個(gè)網(wǎng)站,一個(gè)是某學(xué)校的官方網(wǎng)站,另一個(gè)是開(kāi)源系統(tǒng),名字是Pet Store,此系統(tǒng)是Java編寫(xiě)的基于AJAX的Web應(yīng)用程序,3個(gè)軟件分別對(duì)網(wǎng)站進(jìn)行掃描與檢測(cè),并對(duì)比最后的結(jié)果,具體見(jiàn)表2。

 從實(shí)驗(yàn)結(jié)果來(lái)看,XSS Finder檢測(cè)到的漏洞數(shù)和系統(tǒng)存在的漏洞數(shù)量是一致的,檢測(cè)到的數(shù)據(jù)入口點(diǎn)也符合實(shí)際情況,表明XSS Finder檢測(cè)漏洞的準(zhǔn)確性更好。

5  結(jié)束語(yǔ)

 通過(guò)對(duì)AJAX技術(shù)下XSS漏洞的出現(xiàn)原因及檢測(cè)技術(shù)的研究,本文提出一種基于網(wǎng)絡(luò)爬蟲(chóng)與頁(yè)面代碼行為的XSS漏洞檢測(cè)方法,與兩種常用的XSS漏洞檢測(cè)工具比較,在時(shí)間復(fù)雜度方面,對(duì)Web應(yīng)用程序獨(dú)立掃描20次的情況下,掃描時(shí)間更短,高效地解決了URL重復(fù)性的問(wèn)題:在檢測(cè)精度方面,提出了對(duì)頁(yè)面代碼行為和XHR對(duì)象進(jìn)行檢測(cè)的方法,具有更高的漏洞檢測(cè)準(zhǔn)確性。

關(guān)鍵字:
About Us - 關(guān)于我們 - 服務(wù)列表 - 付費(fèi)指導(dǎo) - 媒體合作 - 廣告服務(wù) - 版權(quán)聲明 - 聯(lián)系我們 - 網(wǎng)站地圖 - 常見(jiàn)問(wèn)題 - 友情鏈接
Copyright©2014安裝信息網(wǎng) www.78375555.com. All rights reserved.
服務(wù)熱線(xiàn):4000-293-296 聯(lián)系電話(huà):0371-61311617 傳真:0371-55611201 QQ: 郵箱:zgazxxw@126.com 豫ICP備18030500號(hào)-4
未經(jīng)過(guò)本站允許,請(qǐng)勿將本站內(nèi)容傳播或復(fù)制
安全聯(lián)盟認(rèn)證