本發(fā)明涉及Web應(yīng)用測(cè)試技術(shù)領(lǐng)域,尤其涉及一種漏洞檢測(cè)方法及其裝置。
背景技術(shù):
近年來,隨著Web應(yīng)用的廣泛使用,Web安全問題也日益突出。其中,XSS(Cross-site scripting,跨站腳本攻擊)漏洞已成為Web應(yīng)用程序中最常見的漏洞之一,因此,對(duì)XSS漏洞的自動(dòng)化檢測(cè)也成為了一項(xiàng)重要的技術(shù)。
目前,一般采用XSS檢測(cè)工具來檢測(cè)XSS漏洞,其具體過程如下:(1)XSS檢測(cè)工具捕獲客戶端(瀏覽器)所發(fā)送的http請(qǐng)求;(2)XSS檢測(cè)工具構(gòu)造帶有特征值的請(qǐng)求;(3)XSS檢測(cè)工具將帶有特征值的請(qǐng)求發(fā)送至Web服務(wù)器,Web服務(wù)器響應(yīng)該請(qǐng)求;(4)XSS檢測(cè)工具在該請(qǐng)求響應(yīng)的頁面源代碼中檢測(cè)特征值,若在某處檢測(cè)到特征值,則認(rèn)為此處為一個(gè)XSS漏洞。
進(jìn)一步地,隨著Web 2.0技術(shù)的發(fā)展,Web應(yīng)用的頁面不僅具有展示靜態(tài)內(nèi)容的功能,還具有與用戶進(jìn)行交互的功能。其中,這些交互功能通常通過在Web頁面嵌入大量JavaScript和CSS腳本來實(shí)現(xiàn)。具體地,通過執(zhí)行嵌入的JavaScript和CSS腳本,可以動(dòng)態(tài)的增加、刪除和修改各種Web頁面元素。然而,上述漏洞檢測(cè)方法由于僅僅檢測(cè)了請(qǐng)求響應(yīng)的源代碼,這部分動(dòng)態(tài)生成的頁面元素由于頁面中的JavaScript和CSS腳本沒有執(zhí)行而無法被檢測(cè),即無法檢測(cè)動(dòng)態(tài)頁面生成元素的XSS漏洞。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:提供一種漏洞檢測(cè)方法,以檢測(cè)出動(dòng)態(tài)頁面生成元素的XSS漏洞。
為解決上述技術(shù)問題,本發(fā)明采用的技術(shù)方案如下:
提供一種漏洞檢測(cè)方法,包括:
接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果,該處理請(qǐng)求包括特征值,該響應(yīng)結(jié)果包括頁面源代碼;
根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到解析結(jié)果,該解析結(jié)果包括html頁面;
對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素;其中,動(dòng)態(tài)頁面指的是執(zhí)行JavaScript腳本和CSS腳本后的頁面。
具體地,該XSS漏洞包括JavaScript腳本和CSS腳本執(zhí)行后生成的漏洞。
可選地,接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果之后,該方法還包括:
對(duì)頁面源代碼進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于靜態(tài)頁面生成元素。其中,靜態(tài)頁面指的是未執(zhí)行JavaScript腳本和CSS腳本的頁面。
較佳地,接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果之前,該方法還包括:
接收客戶端所發(fā)送的用戶請(qǐng)求,并將用戶請(qǐng)求發(fā)送至Web服務(wù)器;
接收Web服務(wù)器對(duì)用戶請(qǐng)求的響應(yīng)結(jié)果;
構(gòu)造處理請(qǐng)求,并將處理請(qǐng)求發(fā)送至Web服務(wù)器。
具體地,該用戶請(qǐng)求包括http請(qǐng)求。
相應(yīng)地,本發(fā)明還提供了一種漏洞檢測(cè)裝置,包括:
接收模塊,用于接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果,該處理請(qǐng)求包括特征值,該響應(yīng)結(jié)果包括頁面源代碼;
解析模塊,用于根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到解析結(jié)果,該解析結(jié)果包括html頁面;以及
檢測(cè)模塊,用于對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素。其中,動(dòng)態(tài)頁面指的是執(zhí)行JavaScript腳本和CSS腳本后的頁面。
具體地,該XSS漏洞包括JavaScript腳本和CSS腳本執(zhí)行后生成的漏洞。
可選地,接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果之后,該檢測(cè)模塊還用于:
對(duì)頁面源代碼進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于靜態(tài)頁面生成元素。其中,靜態(tài)頁面指的是未執(zhí)行JavaScript腳本和CSS腳本的頁面。
較佳地,接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果之前,該接收模塊還用于:
接收客戶端所發(fā)送的用戶請(qǐng)求,并將用戶請(qǐng)求發(fā)送至Web服務(wù)器;
接收Web服務(wù)器對(duì)用戶請(qǐng)求的響應(yīng)結(jié)果;
該漏洞檢測(cè)裝置還包括構(gòu)造模塊,用于構(gòu)造處理請(qǐng)求并將處理請(qǐng)求發(fā)送至Web服務(wù)器。
具體地,該用戶請(qǐng)求包括http請(qǐng)求。
與現(xiàn)有技術(shù)相比,本發(fā)明中的漏洞檢測(cè)方法及其裝置,先接收Web服務(wù)器對(duì)包括特征值的處理請(qǐng)求的響應(yīng)結(jié)果,該響應(yīng)結(jié)果包括頁面源代碼,再根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到包括html頁面的解析結(jié)果,最后對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素。即,本發(fā)明引入了類瀏覽器虛擬解析技術(shù)對(duì)Web服務(wù)器響應(yīng)的頁面源代碼進(jìn)行解析,從而得到了最終生成的HTML結(jié)構(gòu)(即html頁面),進(jìn)一步地對(duì)該頁面進(jìn)行特征值檢測(cè)便實(shí)現(xiàn)了對(duì)動(dòng)態(tài)頁面生成元素的XSS漏洞檢測(cè)的目的。
通過以下的描述并結(jié)合附圖,本發(fā)明將變得更加清晰,這些附圖用于解釋本發(fā)明的實(shí)施例。
附圖說明
圖1為本發(fā)明漏洞檢測(cè)方法第一實(shí)施例的流程圖。
圖2為本發(fā)明漏洞檢測(cè)方法第二實(shí)施例的流程圖。
圖3為jsp示例代碼界面圖。
圖4為Web請(qǐng)求響應(yīng)源代碼的界面圖。
圖5為Web請(qǐng)求響應(yīng)源代碼經(jīng)虛擬解析后的界面圖。
圖6為發(fā)明漏洞檢測(cè)裝置第一實(shí)施例的結(jié)構(gòu)圖。
圖7為發(fā)明漏洞檢測(cè)裝置第一實(shí)施例的結(jié)構(gòu)圖。
具體實(shí)施方式
現(xiàn)在參考附圖描述本發(fā)明的實(shí)施例,附圖中類似的元件標(biāo)號(hào)代表類似的元件。
請(qǐng)參考圖1,是本發(fā)明第一實(shí)施例的漏洞檢測(cè)方法流程圖。如圖所示,該方法可以包括如下步驟:
S101,接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果。
具體地,XSS檢測(cè)工具(即下文中所描述的漏洞檢測(cè)裝置)先向Web服務(wù)器發(fā)送處理請(qǐng)求,其中,該處理請(qǐng)求是由XSS檢測(cè)工具所構(gòu)造的、帶有特征值的請(qǐng)求。Web服務(wù)器接收該處理請(qǐng)求,并對(duì)其進(jìn)行響應(yīng)以得到響應(yīng)結(jié)果,進(jìn)一步地將該響應(yīng)結(jié)果返回至XSS檢測(cè)工具。其中,該響應(yīng)結(jié)果包括頁面源代碼。
需要說明的是,特征值一般都是一些包含特殊字符的字符串,用于破壞當(dāng)前輸出點(diǎn)的上下文html或者JavaScript結(jié)構(gòu),從而達(dá)到成功注入的目的。以下是兩個(gè)特征值的示例:
<div name='xss10001001' id="101482402907">I am tester</div>
<script name='xss10001001' id="101483090516">alert(1)</script>
S102,根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到解析結(jié)果,該解析結(jié)果包括html頁面。
具體地,XSS檢測(cè)工具利用虛擬解析技術(shù),對(duì)頁面源代碼進(jìn)行解析,從而可以獲得最終生成的HTML結(jié)構(gòu)(即html頁面)。
S103,對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素。其中,動(dòng)態(tài)頁面指的是執(zhí)行JavaScript腳本和CSS腳本后的頁面。
具體地,XSS檢測(cè)工具對(duì)解析所得到的html頁面進(jìn)行特征值檢測(cè),如果在經(jīng)過解析的請(qǐng)求響應(yīng)(即html頁面)中檢測(cè)到了特征值,則可以判斷所檢測(cè)到的特征值所在的位置即為一個(gè)XSS漏洞。且,此處的XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素,該XSS漏洞主要指的是JavaScript腳本和CSS腳本執(zhí)行后生成的漏洞。
從以上描述可以看出,本發(fā)明實(shí)施例中,先接收Web服務(wù)器對(duì)包括特征值的處理請(qǐng)求的響應(yīng)結(jié)果,該響應(yīng)結(jié)果包括頁面源代碼,再根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到包括html頁面的解析結(jié)果,最后對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素。即,本發(fā)明實(shí)施例引入了類瀏覽器虛擬解析技術(shù)對(duì)Web服務(wù)器響應(yīng)的頁面源代碼進(jìn)行解析,從而得到了最終生成的HTML結(jié)構(gòu)(即html頁面),進(jìn)一步地對(duì)該頁面進(jìn)行特征值檢測(cè)便實(shí)現(xiàn)了對(duì)動(dòng)態(tài)頁面生成元素的XSS漏洞檢測(cè)的目的。
請(qǐng)參考圖2,是本發(fā)明第二實(shí)施例的漏洞檢測(cè)方法流程圖。如圖所示,該方法可以包括如下步驟:
S201,接收客戶端所發(fā)送的用戶請(qǐng)求,并將用戶請(qǐng)求發(fā)送至Web服務(wù)器。
具體地,客戶端(瀏覽器)先將XSS檢測(cè)工具設(shè)置為代理,以用于后續(xù)代理客戶端向Web服務(wù)器發(fā)送請(qǐng)求。之后,客戶端向XSS檢測(cè)工具發(fā)送用戶請(qǐng)求(http請(qǐng)求),XSS檢測(cè)工具接收該http請(qǐng)求、保存該請(qǐng)求的信息。進(jìn)一步地,XSS檢測(cè)工具將http請(qǐng)求發(fā)送至Web服務(wù)器。
S202,接收Web服務(wù)器對(duì)用戶請(qǐng)求的響應(yīng)結(jié)果。
具體地,Web服務(wù)器接收http請(qǐng)求,對(duì)其做出響應(yīng),并將響應(yīng)結(jié)果返回至XSS檢測(cè)工具。XSS檢測(cè)工具接收來自Web服務(wù)器對(duì)http請(qǐng)求的響應(yīng)結(jié)果,并將其返回至客戶端。
S203,構(gòu)造處理請(qǐng)求,并將處理請(qǐng)求發(fā)送至Web服務(wù)器。
具體地,XSS檢測(cè)工具根據(jù)http請(qǐng)求構(gòu)造帶有特征值的處理請(qǐng)求,并將其發(fā)送至Web服務(wù)器。需要說明的是,例如某個(gè)http請(qǐng)求包含10個(gè)參數(shù),為了達(dá)到成功注入的目的,每個(gè)參數(shù)可能都需要注入10種不同的特征值,則XSS檢測(cè)工具會(huì)一共構(gòu)造10*10=100個(gè)處理請(qǐng)求。
S204,接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果。
具體地,Web服務(wù)器接收XSS檢測(cè)工具所發(fā)送的處理請(qǐng)求,并對(duì)其進(jìn)行響應(yīng)以得到響應(yīng)結(jié)果,進(jìn)一步地將該響應(yīng)結(jié)果返回至XSS檢測(cè)工具。其中,該響應(yīng)結(jié)果包括頁面源代碼。
需要說明的是,特征值一般都是一些包含特殊字符的字符串,用于破壞當(dāng)前輸出點(diǎn)的上下文html或者JavaScript結(jié)構(gòu),從而達(dá)到成功注入的目的。以下是兩個(gè)特征值的示例:
<div name='xss10001001' id="101482402907">I am tester</div>
<script name='xss10001001' id="101483090516">alert(1)</script>
S205,對(duì)頁面源代碼進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于靜態(tài)頁面生成元素。其中,靜態(tài)頁面指的是未執(zhí)行JavaScript腳本和CSS腳本的頁面。
具體地,XSS檢測(cè)工具對(duì)頁面源代碼進(jìn)行特征值檢測(cè),如果檢測(cè)到了特征值,則可以判斷所檢測(cè)到的特征值所在的位置即為一個(gè)XSS漏洞。且,此處的XSS漏洞對(duì)應(yīng)于靜態(tài)頁面生成元素。需要說明的是,步驟S201至S205描述的即是現(xiàn)有的XSS漏洞檢測(cè)方法。也就是說,到步驟S205為止,僅能檢測(cè)靜態(tài)頁面生成元素所對(duì)應(yīng)的XSS漏洞,而動(dòng)態(tài)頁面元素所對(duì)應(yīng)的XSS漏洞由于未被執(zhí)行,是無法被檢測(cè)的。因此,需要進(jìn)行如下步驟以檢測(cè)出動(dòng)態(tài)頁面元素所對(duì)應(yīng)的XSS漏洞。
S206,根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到解析結(jié)果,該解析結(jié)果包括html頁面。
虛擬解析技術(shù)可以模擬瀏覽器運(yùn)行,相當(dāng)于無界面的瀏覽器,可以對(duì)http請(qǐng)求響應(yīng)的源代碼做JavaScript、html和css的解析。由于其運(yùn)行不需要界面,運(yùn)行速度非常迅速。目前業(yè)界已經(jīng)有較為成熟的開源軟件庫,大多運(yùn)用在Web應(yīng)用的自動(dòng)化測(cè)試領(lǐng)域。
具體地,該步驟中,XSS檢測(cè)工具利用虛擬解析技術(shù),對(duì)http請(qǐng)求響應(yīng)的源代碼進(jìn)行解析,可以獲得Web請(qǐng)求響應(yīng)最終生成的HTML結(jié)構(gòu),從而可以解決傳統(tǒng)XSS檢測(cè)工具不能夠發(fā)現(xiàn)這種通過腳本動(dòng)態(tài)生成的元素的XSS漏洞的問題。
進(jìn)一步地,以下以一個(gè)簡(jiǎn)單的示例說明虛擬解析技術(shù)的作用。請(qǐng)參考圖3,其是一段簡(jiǎn)單的jsp示例代碼,第14行的代碼將會(huì)把http請(qǐng)求參數(shù)name的值放到<a></a>中,再將完整的<a>動(dòng)態(tài)的添加到頁面的Div內(nèi)。
如果請(qǐng)求參數(shù)的name值為‘peter’,則現(xiàn)有XSS檢測(cè)工具分析的響應(yīng)源代碼將是如圖4中第14行所顯示的代碼。但根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析后,XSS檢測(cè)工具中可得到如圖5所示的界面。從圖中可以看出,頁面中的JavaScript代碼已經(jīng)執(zhí)行,在頁面第9行,完整的<a>標(biāo)簽的內(nèi)容已經(jīng)動(dòng)態(tài)的插入到了html頁面中。
S207,對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素。其中,動(dòng)態(tài)頁面指的是執(zhí)行JavaScript腳本和CSS腳本后的頁面。
由于代碼9行并沒有對(duì)輸出做編碼保護(hù),這里將是一個(gè)XSS漏洞。如果使用傳統(tǒng)的XSS漏洞檢測(cè)方法,由于不能得到解析之后的html結(jié)構(gòu),將不能發(fā)現(xiàn)這個(gè)XSS漏洞。而本發(fā)明實(shí)施例的XSS漏洞檢測(cè)方法采用了虛擬解析技術(shù),如圖5所示,得到了完整的最終生成的html結(jié)構(gòu),因此可以順利的將此處的XSS漏洞檢測(cè)出來。
具體地,XSS檢測(cè)工具對(duì)解析所得到的html頁面進(jìn)行特征值檢測(cè),如果在經(jīng)過解析的請(qǐng)求響應(yīng)(即html頁面)中檢測(cè)到了特征值,則可以判斷所檢測(cè)到的特征值所在的位置即為一個(gè)XSS漏洞。且,此處的XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素,該XSS漏洞主要指的是JavaScript腳本和CSS腳本執(zhí)行后生成的漏洞。
從以上描述可以看出,本發(fā)明實(shí)施例中,先接收客戶端所發(fā)送的用戶請(qǐng)求,并將用戶請(qǐng)求發(fā)送至Web服務(wù)器,再接收Web服務(wù)器對(duì)用戶請(qǐng)求的響應(yīng)結(jié)果,之后構(gòu)造處理請(qǐng)求并將處理請(qǐng)求發(fā)送至Web服務(wù)器,接著接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果,該響應(yīng)結(jié)果包括頁面源代碼,對(duì)頁面源代碼進(jìn)行特征值檢測(cè)以得到對(duì)應(yīng)于靜態(tài)頁面生成元素的XSS漏洞,同時(shí)根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到包括html頁面的解析結(jié)果,最后對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素。即,本發(fā)明實(shí)施例引入了類瀏覽器虛擬解析技術(shù)對(duì)Web服務(wù)器響應(yīng)的頁面源代碼進(jìn)行解析,從而得到了最終生成的HTML結(jié)構(gòu)(即html頁面),進(jìn)一步地對(duì)該頁面進(jìn)行特征值檢測(cè)便實(shí)現(xiàn)了對(duì)動(dòng)態(tài)頁面生成元素的XSS漏洞檢測(cè)的目的。此外,本發(fā)明實(shí)施例中還對(duì)頁面源代碼進(jìn)行了漏洞檢測(cè),從而檢測(cè)出了對(duì)應(yīng)于靜態(tài)頁面生成元素的XSS漏洞,進(jìn)而更加完善了漏洞檢測(cè)方案,提高了漏洞檢測(cè)率。
請(qǐng)參考圖6,是本發(fā)明第一實(shí)施例的漏洞檢測(cè)裝置的結(jié)構(gòu)圖。如圖所示,該漏洞檢測(cè)裝置可以包括:
接收模塊10,用于接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果,該處理請(qǐng)求包括特征值,該響應(yīng)結(jié)果包括頁面源代碼;
解析模塊11,用于根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到解析結(jié)果,該解析結(jié)果包括html頁面;以及
檢測(cè)模塊12,用于對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素。其中,動(dòng)態(tài)頁面指的是執(zhí)行JavaScript腳本和CSS腳本后的頁面,該XSS漏洞主要指的是JavaScript腳本和CSS腳本執(zhí)行后生成的漏洞。
從以上描述可以看出,本實(shí)施例的漏洞檢測(cè)裝置,先通過接收模塊10接收Web服務(wù)器對(duì)包括特征值的處理請(qǐng)求的響應(yīng)結(jié)果,該響應(yīng)結(jié)果包括頁面源代碼,再通過解析模塊11根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到包括html頁面的解析結(jié)果,最后通過檢測(cè)模塊12對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素。即,本發(fā)明實(shí)施例引入了類瀏覽器虛擬解析技術(shù)對(duì)Web服務(wù)器響應(yīng)的頁面源代碼進(jìn)行解析,從而得到了最終生成的HTML結(jié)構(gòu)(即html頁面),進(jìn)一步地對(duì)該頁面進(jìn)行特征值檢測(cè)便實(shí)現(xiàn)了對(duì)動(dòng)態(tài)頁面生成元素的XSS漏洞檢測(cè)的目的。
請(qǐng)參考圖7,是本發(fā)明第二實(shí)施例的漏洞檢測(cè)裝置的結(jié)構(gòu)圖。如圖所示,該漏洞檢測(cè)裝置可以包括:接收模塊20、解析模塊21、檢測(cè)模塊22及構(gòu)造模塊23。
其中,接收模塊20、解析模塊21、檢測(cè)模塊22除了具備第一實(shí)施例中對(duì)應(yīng)模塊所具有的功能外,接收模塊20還用于:
接收客戶端所發(fā)送的用戶請(qǐng)求,并將用戶請(qǐng)求發(fā)送至Web服務(wù)器,該用戶請(qǐng)求包括http請(qǐng)求;
接收Web服務(wù)器對(duì)用戶請(qǐng)求的響應(yīng)結(jié)果。
該檢測(cè)模塊22還用于:
對(duì)頁面源代碼進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于靜態(tài)頁面生成元素。其中,靜態(tài)頁面指的是未執(zhí)行JavaScript腳本和CSS腳本的頁面。
該構(gòu)造模塊23用于構(gòu)造處理請(qǐng)求并將處理請(qǐng)求發(fā)送至Web服務(wù)器。
從以上描述可以看出,本發(fā)明實(shí)施例中,先通過接收模塊20接收客戶端所發(fā)送的用戶請(qǐng)求,并將用戶請(qǐng)求發(fā)送至Web服務(wù)器,再接收Web服務(wù)器對(duì)用戶請(qǐng)求的響應(yīng)結(jié)果,之后通過構(gòu)造模塊23構(gòu)造處理請(qǐng)求并將處理請(qǐng)求發(fā)送至Web服務(wù)器,接著接收模塊20接收Web服務(wù)器對(duì)處理請(qǐng)求的響應(yīng)結(jié)果,該響應(yīng)結(jié)果包括頁面源代碼,通過檢測(cè)模塊22對(duì)頁面源代碼進(jìn)行特征值檢測(cè)以得到對(duì)應(yīng)于靜態(tài)頁面生成元素的XSS漏洞,同時(shí)通過解析模塊21根據(jù)虛擬解析器對(duì)頁面源代碼進(jìn)行解析以得到包括html頁面的解析結(jié)果,最后通過檢測(cè)模塊22對(duì)html頁面進(jìn)行特征值檢測(cè)以得到XSS漏洞,該XSS漏洞對(duì)應(yīng)于動(dòng)態(tài)頁面生成元素。即,本發(fā)明實(shí)施例引入了類瀏覽器虛擬解析技術(shù)對(duì)Web服務(wù)器響應(yīng)的頁面源代碼進(jìn)行解析,從而得到了最終生成的HTML結(jié)構(gòu)(即html頁面),進(jìn)一步地對(duì)該頁面進(jìn)行特征值檢測(cè)便實(shí)現(xiàn)了對(duì)動(dòng)態(tài)頁面生成元素的XSS漏洞檢測(cè)的目的。此外,本發(fā)明實(shí)施例中還對(duì)頁面源代碼進(jìn)行了漏洞檢測(cè),從而檢測(cè)出了對(duì)應(yīng)于靜態(tài)頁面生成元素的XSS漏洞,進(jìn)而更加完善了漏洞檢測(cè)方案,提高了漏洞檢測(cè)率。
以上結(jié)合最佳實(shí)施例對(duì)本發(fā)明進(jìn)行了描述,但本發(fā)明并不局限于以上揭示的實(shí)施例,而應(yīng)當(dāng)涵蓋各種根據(jù)本發(fā)明的本質(zhì)進(jìn)行的修改、等效組合。