国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù)

2014-06-20 23:38萬(wàn)芳芳
無(wú)線互聯(lián)科技 2014年3期
關(guān)鍵詞:網(wǎng)絡(luò)爬蟲

萬(wàn)芳芳

摘 要:隨著社會(huì)的發(fā)展和科技的進(jìn)步,互聯(lián)網(wǎng)已成為人類獲取信息的重要工具。在Internet給信息社會(huì)帶來(lái)的極大便利的同時(shí),也帶來(lái)了許多安全隱患,跨站腳本攻擊(XSS)在眾多的Web漏洞中位居榜首。為此,提出了一種基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù),包括網(wǎng)絡(luò)爬蟲模塊、代碼自動(dòng)注入模塊和漏洞檢測(cè)模塊。通過(guò)實(shí)驗(yàn)證明,本文對(duì)XXS漏洞檢測(cè)效果較好。

關(guān)鍵詞:XSS;網(wǎng)絡(luò)爬蟲;漏洞挖掘

1 引言

Web技術(shù)是Internet上最具活力和發(fā)展?jié)摿Φ募夹g(shù),它廣泛應(yīng)用于商業(yè)、教育、娛樂(lè)等領(lǐng)域,但是它存在許多的漏洞。由于Internet的不安全性,許多惡意攻擊者意圖進(jìn)行Web攻擊。而在眾多的Web攻擊中,跨站腳本攻擊(XSS)所占的比例非常大。XSS指的是惡意攻擊者利用Web服務(wù)器中的漏洞將惡意代碼插入遠(yuǎn)程Web頁(yè)面,當(dāng)用戶訪問(wèn)此頁(yè)面時(shí),嵌入其中的代碼便會(huì)執(zhí)行,從而盜取用戶的信息。跨站腳本攻擊代碼的種類非常多,對(duì)所有的用戶輸入進(jìn)行檢測(cè)是一件十分困難的事情。因而,本文提出了一種基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù)。

2 基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù)

基于網(wǎng)絡(luò)爬蟲的XSS 漏洞挖掘技術(shù)可以分為3個(gè)模塊:網(wǎng)絡(luò)爬蟲模塊、代碼自動(dòng)注入模塊和漏洞檢測(cè)模塊。

2.1 網(wǎng)絡(luò)爬蟲模塊

網(wǎng)絡(luò)爬蟲是搜索引擎的重要構(gòu)件之一,它是一個(gè)自動(dòng)下載程序。網(wǎng)絡(luò)爬蟲模塊的具體過(guò)程是:網(wǎng)絡(luò)爬蟲從一個(gè)初始的URL出發(fā),從該網(wǎng)頁(yè)中不斷地提取新的URL,然后將該URL按照FIFO順序放入爬蟲隊(duì)列,從該爬蟲隊(duì)列中順序取出新的URL,下載對(duì)應(yīng)的頁(yè)面,并從該新的頁(yè)面中提取新的URL,不斷地重復(fù)該過(guò)程,直到爬蟲隊(duì)列中不含有URL或達(dá)到頁(yè)面最大深度。在網(wǎng)絡(luò)爬蟲過(guò)程中,需要不斷向服務(wù)器發(fā)送Web請(qǐng)求,那么在數(shù)據(jù)傳輸過(guò)程中通過(guò)將編碼進(jìn)行壓縮可以有效減少網(wǎng)絡(luò)中傳送的數(shù)據(jù)。Gzip是一種壓縮效果十分好的壓縮算法,通過(guò)該算法壓縮的數(shù)據(jù)可以使壓縮后的文件是原先文件的30%,在客戶端對(duì)數(shù)據(jù)進(jìn)行壓縮后,該功能在服務(wù)器端也必須設(shè)置,這樣服務(wù)器才能接受此請(qǐng)求,服務(wù)器端可以使用過(guò)濾器對(duì)其進(jìn)行解壓。網(wǎng)絡(luò)爬蟲在爬取鏈接時(shí),需要管理很多的套接字,使用完成端口模型方式可以使系統(tǒng)達(dá)到最佳的性能。在Windows系統(tǒng)下,利用它不但可以接受套接字句柄,而且還可以接受其它服務(wù)。提供服務(wù)完成端口模型要求創(chuàng)建一個(gè)Windows完成端口對(duì)象,用它管理多個(gè)I/O請(qǐng)求。在對(duì)頁(yè)面進(jìn)行解析時(shí)采用正則表達(dá)式進(jìn)行匹配,從而提取出所需的數(shù)據(jù)。利用正則表達(dá)式提取出URL后,還需要將它轉(zhuǎn)換成絕對(duì)路徑。Uri url=new Uri(src_uri,new_uri);//轉(zhuǎn)絕對(duì)路徑方式的URL。在爬蟲的過(guò)程中可能存在許多重復(fù)的URL,如果將每個(gè)URL進(jìn)行匹配來(lái)判斷是否重復(fù)需要消耗大量的時(shí)間。前面我們已經(jīng)闡述過(guò)在提取URL時(shí)需要將其壓縮編碼傳輸,我們可以對(duì)其壓縮后的編碼建立Hash表,這樣便可以判定URL是否重復(fù)。我們?cè)L問(wèn)的URL大多數(shù)是以http://或https://開始而以.html、.asp、.com、.cn等常見(jiàn)的字符終止的,因此,當(dāng)我們對(duì)字符進(jìn)行hash時(shí),應(yīng)當(dāng)去除開始和結(jié)尾的常見(jiàn)字符,這樣可以減少碰撞發(fā)生的概率。本文提出了一種新的算法----M-Interval-Hash,可以計(jì)算URL的hash值:令M=去掉常見(jiàn)字符后的字符長(zhǎng)度/N,代表在URL中選取字符時(shí)間隔的字符數(shù)。N是一個(gè)按照經(jīng)驗(yàn)來(lái)設(shè)置的參數(shù),例如,N=3,字符長(zhǎng)度為36,則M=12,表示選取字符的間隔是12個(gè)字符。

2.2 代碼自動(dòng)注入模塊

在對(duì)XSS漏洞進(jìn)行挖掘時(shí),需要注入代碼來(lái)測(cè)試漏洞是否存在,而在XSS中,惡意代碼的注入可以是在GET請(qǐng)求中,也可以是POST請(qǐng)求。所以,在代碼自動(dòng)注入時(shí),應(yīng)該考慮上述兩種情形。在代碼注入時(shí),測(cè)試每一個(gè)注入點(diǎn),測(cè)試時(shí)按照數(shù)據(jù)庫(kù)中測(cè)試代碼順序依次從數(shù)據(jù)庫(kù)中取出一條記錄,直到數(shù)據(jù)庫(kù)中的記錄為空。

2.3 漏洞檢測(cè)模塊

代碼注入完成之后,還需要對(duì)注入的結(jié)果進(jìn)行檢測(cè),以確定是否存在該漏洞。本文通過(guò)匹配漏洞特征庫(kù)來(lái)判斷XSS漏洞是否執(zhí)行成功。從漏洞特征庫(kù)讀取XSS注入漏洞的測(cè)試腳本,對(duì)每個(gè)GET變量和POST變量依次進(jìn)行XSS攻擊。然后分析從Web服務(wù)器端返回的響應(yīng)消息,看其是否滿足漏洞庫(kù)中該漏洞的特征。若滿足,則說(shuō)明存在XSS漏洞,否則不存在。

XSS的測(cè)試效果很大程度上由測(cè)試腳本的質(zhì)量決定,本方案選擇的腳本為OWASP所推薦的測(cè)試腳本。

3 實(shí)驗(yàn)結(jié)果及比較

3.1 網(wǎng)絡(luò)爬蟲模塊中URL去重算法測(cè)試

為了驗(yàn)證本文技術(shù)方案的可行性,首先對(duì)URL去重算法進(jìn)行了驗(yàn)證,將M-Interval-Hash算法與MD5算法進(jìn)行比較。實(shí)驗(yàn)環(huán)境采用一臺(tái)計(jì)算機(jī),CPU為Pentium E5300,內(nèi)存為2GB。軟件環(huán)境為Windows XP Professional版本 2002 Service Pack2和JDK 1.6,數(shù)據(jù)庫(kù)為MySQL 5.5.20。在M-Interval-Hash算法中,為了測(cè)試方便,我們?nèi)∨cM相關(guān)的經(jīng)驗(yàn)參數(shù)N=8,將該算法和MD5算法比較。

4.2 XSS漏洞檢測(cè)測(cè)試

為測(cè)試本文技術(shù)的可行性,對(duì)一些網(wǎng)站進(jìn)行了掃描,并和另外兩種基于爬蟲的檢測(cè)工具Acunetix WVS Free Edition 6.5和XSSer 1.5進(jìn)行比較。第一個(gè)網(wǎng)站測(cè)試環(huán)境為Apache 2.2.14+PHP;第二個(gè)網(wǎng)站測(cè)試環(huán)境為IIS 6.0+ASP。

表1為上述兩種工具和本文技術(shù)掃描結(jié)果比較。

在表1中的第二個(gè)網(wǎng)站中存在Form表單,所以XSSer無(wú)法檢測(cè)出XSS漏洞。

本文技術(shù)、Acunetix WVS 8和XSSer 1.5對(duì)XSS漏洞掃描的時(shí)間比較見(jiàn)表2。

通過(guò)表1和表2的數(shù)據(jù)可看出本文XSS漏洞挖掘技術(shù)相對(duì)Acunetix WVS和XSSer兩種工具來(lái)說(shuō)性能更佳。

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

對(duì)于Web攻擊中的大量XSS攻擊,本文提出了一種基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù),為了提高網(wǎng)絡(luò)爬蟲的性能,在網(wǎng)絡(luò)爬蟲模塊使用了M-Interval-Hash新算法,以實(shí)現(xiàn)URL去重,同時(shí)為了提高網(wǎng)頁(yè)抓取速度,采用了異步I/O完成端口模型,漏洞檢測(cè)模塊則使用特征庫(kù)匹配技術(shù)。通過(guò)實(shí)驗(yàn)證明,XXS漏洞檢測(cè)效果較好,在郵箱XSS漏洞的挖掘、Web網(wǎng)站XSS漏洞的檢測(cè)等方面均有成功的應(yīng)用.

[參考文獻(xiàn)]

[1]許思遠(yuǎn),鄭滔.服務(wù)器-客戶端協(xié)作的跨站腳本攻擊防御方法[J].計(jì)算機(jī)工程,2011,37(18):154-156.

[2]趙艷.基于網(wǎng)絡(luò)爬蟲的跨站腳本漏洞動(dòng)態(tài)檢測(cè)技術(shù)研究.西南交通大學(xué)碩士論文,2011.5.

摘 要:隨著社會(huì)的發(fā)展和科技的進(jìn)步,互聯(lián)網(wǎng)已成為人類獲取信息的重要工具。在Internet給信息社會(huì)帶來(lái)的極大便利的同時(shí),也帶來(lái)了許多安全隱患,跨站腳本攻擊(XSS)在眾多的Web漏洞中位居榜首。為此,提出了一種基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù),包括網(wǎng)絡(luò)爬蟲模塊、代碼自動(dòng)注入模塊和漏洞檢測(cè)模塊。通過(guò)實(shí)驗(yàn)證明,本文對(duì)XXS漏洞檢測(cè)效果較好。

關(guān)鍵詞:XSS;網(wǎng)絡(luò)爬蟲;漏洞挖掘

1 引言

Web技術(shù)是Internet上最具活力和發(fā)展?jié)摿Φ募夹g(shù),它廣泛應(yīng)用于商業(yè)、教育、娛樂(lè)等領(lǐng)域,但是它存在許多的漏洞。由于Internet的不安全性,許多惡意攻擊者意圖進(jìn)行Web攻擊。而在眾多的Web攻擊中,跨站腳本攻擊(XSS)所占的比例非常大。XSS指的是惡意攻擊者利用Web服務(wù)器中的漏洞將惡意代碼插入遠(yuǎn)程Web頁(yè)面,當(dāng)用戶訪問(wèn)此頁(yè)面時(shí),嵌入其中的代碼便會(huì)執(zhí)行,從而盜取用戶的信息??缯灸_本攻擊代碼的種類非常多,對(duì)所有的用戶輸入進(jìn)行檢測(cè)是一件十分困難的事情。因而,本文提出了一種基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù)。

2 基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù)

基于網(wǎng)絡(luò)爬蟲的XSS 漏洞挖掘技術(shù)可以分為3個(gè)模塊:網(wǎng)絡(luò)爬蟲模塊、代碼自動(dòng)注入模塊和漏洞檢測(cè)模塊。

2.1 網(wǎng)絡(luò)爬蟲模塊

網(wǎng)絡(luò)爬蟲是搜索引擎的重要構(gòu)件之一,它是一個(gè)自動(dòng)下載程序。網(wǎng)絡(luò)爬蟲模塊的具體過(guò)程是:網(wǎng)絡(luò)爬蟲從一個(gè)初始的URL出發(fā),從該網(wǎng)頁(yè)中不斷地提取新的URL,然后將該URL按照FIFO順序放入爬蟲隊(duì)列,從該爬蟲隊(duì)列中順序取出新的URL,下載對(duì)應(yīng)的頁(yè)面,并從該新的頁(yè)面中提取新的URL,不斷地重復(fù)該過(guò)程,直到爬蟲隊(duì)列中不含有URL或達(dá)到頁(yè)面最大深度。在網(wǎng)絡(luò)爬蟲過(guò)程中,需要不斷向服務(wù)器發(fā)送Web請(qǐng)求,那么在數(shù)據(jù)傳輸過(guò)程中通過(guò)將編碼進(jìn)行壓縮可以有效減少網(wǎng)絡(luò)中傳送的數(shù)據(jù)。Gzip是一種壓縮效果十分好的壓縮算法,通過(guò)該算法壓縮的數(shù)據(jù)可以使壓縮后的文件是原先文件的30%,在客戶端對(duì)數(shù)據(jù)進(jìn)行壓縮后,該功能在服務(wù)器端也必須設(shè)置,這樣服務(wù)器才能接受此請(qǐng)求,服務(wù)器端可以使用過(guò)濾器對(duì)其進(jìn)行解壓。網(wǎng)絡(luò)爬蟲在爬取鏈接時(shí),需要管理很多的套接字,使用完成端口模型方式可以使系統(tǒng)達(dá)到最佳的性能。在Windows系統(tǒng)下,利用它不但可以接受套接字句柄,而且還可以接受其它服務(wù)。提供服務(wù)完成端口模型要求創(chuàng)建一個(gè)Windows完成端口對(duì)象,用它管理多個(gè)I/O請(qǐng)求。在對(duì)頁(yè)面進(jìn)行解析時(shí)采用正則表達(dá)式進(jìn)行匹配,從而提取出所需的數(shù)據(jù)。利用正則表達(dá)式提取出URL后,還需要將它轉(zhuǎn)換成絕對(duì)路徑。Uri url=new Uri(src_uri,new_uri);//轉(zhuǎn)絕對(duì)路徑方式的URL。在爬蟲的過(guò)程中可能存在許多重復(fù)的URL,如果將每個(gè)URL進(jìn)行匹配來(lái)判斷是否重復(fù)需要消耗大量的時(shí)間。前面我們已經(jīng)闡述過(guò)在提取URL時(shí)需要將其壓縮編碼傳輸,我們可以對(duì)其壓縮后的編碼建立Hash表,這樣便可以判定URL是否重復(fù)。我們?cè)L問(wèn)的URL大多數(shù)是以http://或https://開始而以.html、.asp、.com、.cn等常見(jiàn)的字符終止的,因此,當(dāng)我們對(duì)字符進(jìn)行hash時(shí),應(yīng)當(dāng)去除開始和結(jié)尾的常見(jiàn)字符,這樣可以減少碰撞發(fā)生的概率。本文提出了一種新的算法----M-Interval-Hash,可以計(jì)算URL的hash值:令M=去掉常見(jiàn)字符后的字符長(zhǎng)度/N,代表在URL中選取字符時(shí)間隔的字符數(shù)。N是一個(gè)按照經(jīng)驗(yàn)來(lái)設(shè)置的參數(shù),例如,N=3,字符長(zhǎng)度為36,則M=12,表示選取字符的間隔是12個(gè)字符。

2.2 代碼自動(dòng)注入模塊

在對(duì)XSS漏洞進(jìn)行挖掘時(shí),需要注入代碼來(lái)測(cè)試漏洞是否存在,而在XSS中,惡意代碼的注入可以是在GET請(qǐng)求中,也可以是POST請(qǐng)求。所以,在代碼自動(dòng)注入時(shí),應(yīng)該考慮上述兩種情形。在代碼注入時(shí),測(cè)試每一個(gè)注入點(diǎn),測(cè)試時(shí)按照數(shù)據(jù)庫(kù)中測(cè)試代碼順序依次從數(shù)據(jù)庫(kù)中取出一條記錄,直到數(shù)據(jù)庫(kù)中的記錄為空。

2.3 漏洞檢測(cè)模塊

代碼注入完成之后,還需要對(duì)注入的結(jié)果進(jìn)行檢測(cè),以確定是否存在該漏洞。本文通過(guò)匹配漏洞特征庫(kù)來(lái)判斷XSS漏洞是否執(zhí)行成功。從漏洞特征庫(kù)讀取XSS注入漏洞的測(cè)試腳本,對(duì)每個(gè)GET變量和POST變量依次進(jìn)行XSS攻擊。然后分析從Web服務(wù)器端返回的響應(yīng)消息,看其是否滿足漏洞庫(kù)中該漏洞的特征。若滿足,則說(shuō)明存在XSS漏洞,否則不存在。

XSS的測(cè)試效果很大程度上由測(cè)試腳本的質(zhì)量決定,本方案選擇的腳本為OWASP所推薦的測(cè)試腳本。

3 實(shí)驗(yàn)結(jié)果及比較

3.1 網(wǎng)絡(luò)爬蟲模塊中URL去重算法測(cè)試

為了驗(yàn)證本文技術(shù)方案的可行性,首先對(duì)URL去重算法進(jìn)行了驗(yàn)證,將M-Interval-Hash算法與MD5算法進(jìn)行比較。實(shí)驗(yàn)環(huán)境采用一臺(tái)計(jì)算機(jī),CPU為Pentium E5300,內(nèi)存為2GB。軟件環(huán)境為Windows XP Professional版本 2002 Service Pack2和JDK 1.6,數(shù)據(jù)庫(kù)為MySQL 5.5.20。在M-Interval-Hash算法中,為了測(cè)試方便,我們?nèi)∨cM相關(guān)的經(jīng)驗(yàn)參數(shù)N=8,將該算法和MD5算法比較。

4.2 XSS漏洞檢測(cè)測(cè)試

為測(cè)試本文技術(shù)的可行性,對(duì)一些網(wǎng)站進(jìn)行了掃描,并和另外兩種基于爬蟲的檢測(cè)工具Acunetix WVS Free Edition 6.5和XSSer 1.5進(jìn)行比較。第一個(gè)網(wǎng)站測(cè)試環(huán)境為Apache 2.2.14+PHP;第二個(gè)網(wǎng)站測(cè)試環(huán)境為IIS 6.0+ASP。

表1為上述兩種工具和本文技術(shù)掃描結(jié)果比較。

在表1中的第二個(gè)網(wǎng)站中存在Form表單,所以XSSer無(wú)法檢測(cè)出XSS漏洞。

本文技術(shù)、Acunetix WVS 8和XSSer 1.5對(duì)XSS漏洞掃描的時(shí)間比較見(jiàn)表2。

通過(guò)表1和表2的數(shù)據(jù)可看出本文XSS漏洞挖掘技術(shù)相對(duì)Acunetix WVS和XSSer兩種工具來(lái)說(shuō)性能更佳。

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

對(duì)于Web攻擊中的大量XSS攻擊,本文提出了一種基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù),為了提高網(wǎng)絡(luò)爬蟲的性能,在網(wǎng)絡(luò)爬蟲模塊使用了M-Interval-Hash新算法,以實(shí)現(xiàn)URL去重,同時(shí)為了提高網(wǎng)頁(yè)抓取速度,采用了異步I/O完成端口模型,漏洞檢測(cè)模塊則使用特征庫(kù)匹配技術(shù)。通過(guò)實(shí)驗(yàn)證明,XXS漏洞檢測(cè)效果較好,在郵箱XSS漏洞的挖掘、Web網(wǎng)站XSS漏洞的檢測(cè)等方面均有成功的應(yīng)用.

[參考文獻(xiàn)]

[1]許思遠(yuǎn),鄭滔.服務(wù)器-客戶端協(xié)作的跨站腳本攻擊防御方法[J].計(jì)算機(jī)工程,2011,37(18):154-156.

[2]趙艷.基于網(wǎng)絡(luò)爬蟲的跨站腳本漏洞動(dòng)態(tài)檢測(cè)技術(shù)研究.西南交通大學(xué)碩士論文,2011.5.

摘 要:隨著社會(huì)的發(fā)展和科技的進(jìn)步,互聯(lián)網(wǎng)已成為人類獲取信息的重要工具。在Internet給信息社會(huì)帶來(lái)的極大便利的同時(shí),也帶來(lái)了許多安全隱患,跨站腳本攻擊(XSS)在眾多的Web漏洞中位居榜首。為此,提出了一種基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù),包括網(wǎng)絡(luò)爬蟲模塊、代碼自動(dòng)注入模塊和漏洞檢測(cè)模塊。通過(guò)實(shí)驗(yàn)證明,本文對(duì)XXS漏洞檢測(cè)效果較好。

關(guān)鍵詞:XSS;網(wǎng)絡(luò)爬蟲;漏洞挖掘

1 引言

Web技術(shù)是Internet上最具活力和發(fā)展?jié)摿Φ募夹g(shù),它廣泛應(yīng)用于商業(yè)、教育、娛樂(lè)等領(lǐng)域,但是它存在許多的漏洞。由于Internet的不安全性,許多惡意攻擊者意圖進(jìn)行Web攻擊。而在眾多的Web攻擊中,跨站腳本攻擊(XSS)所占的比例非常大。XSS指的是惡意攻擊者利用Web服務(wù)器中的漏洞將惡意代碼插入遠(yuǎn)程Web頁(yè)面,當(dāng)用戶訪問(wèn)此頁(yè)面時(shí),嵌入其中的代碼便會(huì)執(zhí)行,從而盜取用戶的信息??缯灸_本攻擊代碼的種類非常多,對(duì)所有的用戶輸入進(jìn)行檢測(cè)是一件十分困難的事情。因而,本文提出了一種基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù)。

2 基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù)

基于網(wǎng)絡(luò)爬蟲的XSS 漏洞挖掘技術(shù)可以分為3個(gè)模塊:網(wǎng)絡(luò)爬蟲模塊、代碼自動(dòng)注入模塊和漏洞檢測(cè)模塊。

2.1 網(wǎng)絡(luò)爬蟲模塊

網(wǎng)絡(luò)爬蟲是搜索引擎的重要構(gòu)件之一,它是一個(gè)自動(dòng)下載程序。網(wǎng)絡(luò)爬蟲模塊的具體過(guò)程是:網(wǎng)絡(luò)爬蟲從一個(gè)初始的URL出發(fā),從該網(wǎng)頁(yè)中不斷地提取新的URL,然后將該URL按照FIFO順序放入爬蟲隊(duì)列,從該爬蟲隊(duì)列中順序取出新的URL,下載對(duì)應(yīng)的頁(yè)面,并從該新的頁(yè)面中提取新的URL,不斷地重復(fù)該過(guò)程,直到爬蟲隊(duì)列中不含有URL或達(dá)到頁(yè)面最大深度。在網(wǎng)絡(luò)爬蟲過(guò)程中,需要不斷向服務(wù)器發(fā)送Web請(qǐng)求,那么在數(shù)據(jù)傳輸過(guò)程中通過(guò)將編碼進(jìn)行壓縮可以有效減少網(wǎng)絡(luò)中傳送的數(shù)據(jù)。Gzip是一種壓縮效果十分好的壓縮算法,通過(guò)該算法壓縮的數(shù)據(jù)可以使壓縮后的文件是原先文件的30%,在客戶端對(duì)數(shù)據(jù)進(jìn)行壓縮后,該功能在服務(wù)器端也必須設(shè)置,這樣服務(wù)器才能接受此請(qǐng)求,服務(wù)器端可以使用過(guò)濾器對(duì)其進(jìn)行解壓。網(wǎng)絡(luò)爬蟲在爬取鏈接時(shí),需要管理很多的套接字,使用完成端口模型方式可以使系統(tǒng)達(dá)到最佳的性能。在Windows系統(tǒng)下,利用它不但可以接受套接字句柄,而且還可以接受其它服務(wù)。提供服務(wù)完成端口模型要求創(chuàng)建一個(gè)Windows完成端口對(duì)象,用它管理多個(gè)I/O請(qǐng)求。在對(duì)頁(yè)面進(jìn)行解析時(shí)采用正則表達(dá)式進(jìn)行匹配,從而提取出所需的數(shù)據(jù)。利用正則表達(dá)式提取出URL后,還需要將它轉(zhuǎn)換成絕對(duì)路徑。Uri url=new Uri(src_uri,new_uri);//轉(zhuǎn)絕對(duì)路徑方式的URL。在爬蟲的過(guò)程中可能存在許多重復(fù)的URL,如果將每個(gè)URL進(jìn)行匹配來(lái)判斷是否重復(fù)需要消耗大量的時(shí)間。前面我們已經(jīng)闡述過(guò)在提取URL時(shí)需要將其壓縮編碼傳輸,我們可以對(duì)其壓縮后的編碼建立Hash表,這樣便可以判定URL是否重復(fù)。我們?cè)L問(wèn)的URL大多數(shù)是以http://或https://開始而以.html、.asp、.com、.cn等常見(jiàn)的字符終止的,因此,當(dāng)我們對(duì)字符進(jìn)行hash時(shí),應(yīng)當(dāng)去除開始和結(jié)尾的常見(jiàn)字符,這樣可以減少碰撞發(fā)生的概率。本文提出了一種新的算法----M-Interval-Hash,可以計(jì)算URL的hash值:令M=去掉常見(jiàn)字符后的字符長(zhǎng)度/N,代表在URL中選取字符時(shí)間隔的字符數(shù)。N是一個(gè)按照經(jīng)驗(yàn)來(lái)設(shè)置的參數(shù),例如,N=3,字符長(zhǎng)度為36,則M=12,表示選取字符的間隔是12個(gè)字符。

2.2 代碼自動(dòng)注入模塊

在對(duì)XSS漏洞進(jìn)行挖掘時(shí),需要注入代碼來(lái)測(cè)試漏洞是否存在,而在XSS中,惡意代碼的注入可以是在GET請(qǐng)求中,也可以是POST請(qǐng)求。所以,在代碼自動(dòng)注入時(shí),應(yīng)該考慮上述兩種情形。在代碼注入時(shí),測(cè)試每一個(gè)注入點(diǎn),測(cè)試時(shí)按照數(shù)據(jù)庫(kù)中測(cè)試代碼順序依次從數(shù)據(jù)庫(kù)中取出一條記錄,直到數(shù)據(jù)庫(kù)中的記錄為空。

2.3 漏洞檢測(cè)模塊

代碼注入完成之后,還需要對(duì)注入的結(jié)果進(jìn)行檢測(cè),以確定是否存在該漏洞。本文通過(guò)匹配漏洞特征庫(kù)來(lái)判斷XSS漏洞是否執(zhí)行成功。從漏洞特征庫(kù)讀取XSS注入漏洞的測(cè)試腳本,對(duì)每個(gè)GET變量和POST變量依次進(jìn)行XSS攻擊。然后分析從Web服務(wù)器端返回的響應(yīng)消息,看其是否滿足漏洞庫(kù)中該漏洞的特征。若滿足,則說(shuō)明存在XSS漏洞,否則不存在。

XSS的測(cè)試效果很大程度上由測(cè)試腳本的質(zhì)量決定,本方案選擇的腳本為OWASP所推薦的測(cè)試腳本。

3 實(shí)驗(yàn)結(jié)果及比較

3.1 網(wǎng)絡(luò)爬蟲模塊中URL去重算法測(cè)試

為了驗(yàn)證本文技術(shù)方案的可行性,首先對(duì)URL去重算法進(jìn)行了驗(yàn)證,將M-Interval-Hash算法與MD5算法進(jìn)行比較。實(shí)驗(yàn)環(huán)境采用一臺(tái)計(jì)算機(jī),CPU為Pentium E5300,內(nèi)存為2GB。軟件環(huán)境為Windows XP Professional版本 2002 Service Pack2和JDK 1.6,數(shù)據(jù)庫(kù)為MySQL 5.5.20。在M-Interval-Hash算法中,為了測(cè)試方便,我們?nèi)∨cM相關(guān)的經(jīng)驗(yàn)參數(shù)N=8,將該算法和MD5算法比較。

4.2 XSS漏洞檢測(cè)測(cè)試

為測(cè)試本文技術(shù)的可行性,對(duì)一些網(wǎng)站進(jìn)行了掃描,并和另外兩種基于爬蟲的檢測(cè)工具Acunetix WVS Free Edition 6.5和XSSer 1.5進(jìn)行比較。第一個(gè)網(wǎng)站測(cè)試環(huán)境為Apache 2.2.14+PHP;第二個(gè)網(wǎng)站測(cè)試環(huán)境為IIS 6.0+ASP。

表1為上述兩種工具和本文技術(shù)掃描結(jié)果比較。

在表1中的第二個(gè)網(wǎng)站中存在Form表單,所以XSSer無(wú)法檢測(cè)出XSS漏洞。

本文技術(shù)、Acunetix WVS 8和XSSer 1.5對(duì)XSS漏洞掃描的時(shí)間比較見(jiàn)表2。

通過(guò)表1和表2的數(shù)據(jù)可看出本文XSS漏洞挖掘技術(shù)相對(duì)Acunetix WVS和XSSer兩種工具來(lái)說(shuō)性能更佳。

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

對(duì)于Web攻擊中的大量XSS攻擊,本文提出了一種基于網(wǎng)絡(luò)爬蟲的XSS漏洞挖掘技術(shù),為了提高網(wǎng)絡(luò)爬蟲的性能,在網(wǎng)絡(luò)爬蟲模塊使用了M-Interval-Hash新算法,以實(shí)現(xiàn)URL去重,同時(shí)為了提高網(wǎng)頁(yè)抓取速度,采用了異步I/O完成端口模型,漏洞檢測(cè)模塊則使用特征庫(kù)匹配技術(shù)。通過(guò)實(shí)驗(yàn)證明,XXS漏洞檢測(cè)效果較好,在郵箱XSS漏洞的挖掘、Web網(wǎng)站XSS漏洞的檢測(cè)等方面均有成功的應(yīng)用.

[參考文獻(xiàn)]

[1]許思遠(yuǎn),鄭滔.服務(wù)器-客戶端協(xié)作的跨站腳本攻擊防御方法[J].計(jì)算機(jī)工程,2011,37(18):154-156.

[2]趙艷.基于網(wǎng)絡(luò)爬蟲的跨站腳本漏洞動(dòng)態(tài)檢測(cè)技術(shù)研究.西南交通大學(xué)碩士論文,2011.5.

猜你喜歡
網(wǎng)絡(luò)爬蟲
基于分布式的農(nóng)業(yè)信息檢索系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
微信平臺(tái)下的教務(wù)信息獲取和隱私保護(hù)方法研究
基于網(wǎng)絡(luò)爬蟲的電子易購(gòu)軟件設(shè)計(jì)與實(shí)現(xiàn)
搜索引擎技術(shù)的發(fā)展現(xiàn)狀與前景
煉鐵廠鐵量網(wǎng)頁(yè)數(shù)據(jù)獲取系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
基于社會(huì)網(wǎng)絡(luò)分析的權(quán)威網(wǎng)頁(yè)挖掘研究
主題搜索引擎中網(wǎng)絡(luò)爬蟲的實(shí)現(xiàn)研究
淺析如何應(yīng)對(duì)網(wǎng)絡(luò)爬蟲流量
基于淘寶某商品銷售量監(jiān)控系統(tǒng)
網(wǎng)絡(luò)爬蟲針對(duì)“反爬”網(wǎng)站的爬取策略研究
莎车县| 深泽县| 孟津县| 台湾省| 定兴县| 察隅县| 简阳市| 安国市| 崇左市| 交口县| 泸定县| 峨边| 普兰店市| 外汇| 绥棱县| 信宜市| 宝兴县| 清涧县| 英吉沙县| 安国市| 运城市| 河北区| 梅河口市| 京山县| 南京市| 轮台县| 乐山市| 安陆市| 临江市| 宁武县| 洪江市| 克山县| 瓮安县| 抚远县| 洛川县| 宁阳县| 五大连池市| 和龙市| 贵港市| 高雄市| 台东县|