国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種交互XSS漏洞的檢測方法及其系統(tǒng)與流程

      文檔序號(hào):11476028閱讀:267來源:國知局
      一種交互XSS漏洞的檢測方法及其系統(tǒng)與流程

      本發(fā)明實(shí)施例屬于web程序應(yīng)用領(lǐng)域,尤其涉及一種交互xss漏洞的檢測方法及其系統(tǒng)。



      背景技術(shù):

      隨著web應(yīng)用的廣泛使用,web安全問題也日益突出,跨站腳本攻擊(cross-sitescripting,xss)是攻擊者通過向web應(yīng)用的頁面中注入特定的腳本,當(dāng)用戶瀏覽該頁面時(shí),攻擊者注入的腳本就會(huì)被執(zhí)行,從而達(dá)到攻擊的目的。xss已經(jīng)成為web應(yīng)用程序中最常見的漏洞之一,對xss漏洞的自動(dòng)化檢測也成為一項(xiàng)重要的技術(shù)。web2.0技術(shù)的發(fā)展,使web應(yīng)用的頁面不僅僅能展示靜態(tài)內(nèi)容,還有越來越多的與用戶交互的功能,這部分交互功能往往通過在web頁面嵌入javascript和css腳本來實(shí)現(xiàn)。通過ajax技術(shù),甚至可以實(shí)現(xiàn)在頁面不刷新和不提交的情況下,與服務(wù)端進(jìn)行交互。這些動(dòng)態(tài)交互可以動(dòng)態(tài)修改或者生成一些頁面的元素,在這一過程中,也會(huì)有xss漏洞產(chǎn)生。

      傳統(tǒng)的xss檢測方法大多是是靠檢測響應(yīng)中的特征值來發(fā)現(xiàn)xss漏洞的,具體地,首先捕獲web應(yīng)用的http請求,然后構(gòu)造并向web服務(wù)器發(fā)送帶有檢測特征值的請求,再在這些請求響應(yīng)的頁面源代碼中檢測特征值。如果在某處檢測到特征值,則認(rèn)為此處即為一個(gè)xss漏洞。但由于現(xiàn)有的部分交互功能,通過ajax技術(shù)甚至可以實(shí)現(xiàn)在頁面不刷新和不提交的情況下,與web服務(wù)器進(jìn)行交互,即不用發(fā)送http請求也能與web服務(wù)器交互,而這些動(dòng)態(tài)交互可以動(dòng)態(tài)修改或者生成一些頁面的元素,在這一過程中,也會(huì)有xss漏洞產(chǎn)生,因此,現(xiàn)有方法不能發(fā)現(xiàn)由腳本動(dòng)態(tài)執(zhí)行產(chǎn)生的xss漏洞。故需要提出一種針對用戶交互過程中產(chǎn)生的xss漏洞的檢測方法。



      技術(shù)實(shí)現(xiàn)要素:

      本發(fā)明實(shí)施例提供了一種交互xss漏洞的檢測方法,旨在解決現(xiàn)有的方法中,無法檢測出由于腳本動(dòng)態(tài)執(zhí)行產(chǎn)生的xss漏洞的問題。

      本發(fā)明實(shí)施例第一方面,提供了一種交互xss漏洞的檢測方法,所述交互xss漏洞的檢測方法包括:

      發(fā)送構(gòu)造的帶有特征值的檢測請求至web服務(wù)器,并接收所述web服務(wù)器返回的響應(yīng)頁面;

      解析預(yù)先在所述響應(yīng)頁面注入的dom監(jiān)聽器,以隨時(shí)監(jiān)聽所述響應(yīng)頁面的dom結(jié)構(gòu)的變化情況;

      解析預(yù)先在所述響應(yīng)頁面注入的智能事件模擬器,以通過所述智能事件模擬器發(fā)現(xiàn)并自動(dòng)觸發(fā)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件;

      根據(jù)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件的被觸發(fā)情況及所述dom監(jiān)聽器的監(jiān)聽結(jié)果判斷是否存在xss漏洞。

      本發(fā)明實(shí)施例的第二方面,提供一種交互xss漏洞的檢測系統(tǒng),所述交互xss漏洞的檢測系統(tǒng)包括:

      檢測請求發(fā)送單元,用于發(fā)送構(gòu)造的帶有特征值的檢測請求至web服務(wù)器,并接收所述web服務(wù)器返回的響應(yīng)頁面;

      dom監(jiān)聽器解析單元,用于解析預(yù)先在所述響應(yīng)頁面注入的dom監(jiān)聽器,以隨時(shí)監(jiān)聽所述響應(yīng)頁面的dom結(jié)構(gòu)的變化情況;

      智能事件模擬器解析單元,用于解析預(yù)先在所述響應(yīng)頁面注入的智能事件模擬器,以通過所述智能事件模擬器發(fā)現(xiàn)并自動(dòng)觸發(fā)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件;

      判斷單元,用于根據(jù)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件的被觸發(fā)情況及所述dom監(jiān)聽器的監(jiān)聽結(jié)果判斷是否存在xss漏洞。

      在本發(fā)明實(shí)施例中,首先發(fā)送構(gòu)造的帶有特征值的檢測請求到web服務(wù)器,并接收web服務(wù)器反饋的響應(yīng)頁面,解析預(yù)先在響應(yīng)頁面注入的dom監(jiān)聽器,以隨時(shí)監(jiān)聽響應(yīng)頁面的dom結(jié)構(gòu);解析并執(zhí)行預(yù)先在響應(yīng)頁面注入的智能事件模擬器,以觸發(fā)響應(yīng)頁面的dom結(jié)構(gòu)上的各種事件;智能事件模擬器可以達(dá)到識(shí)別并模擬用戶交互的效果,從而使xss檢測工具將得到完整的dom結(jié)構(gòu)。然后再通過已經(jīng)解析的dom監(jiān)聽器,監(jiān)聽響應(yīng)頁面的dom結(jié)構(gòu)是否有變化,根據(jù)監(jiān)聽結(jié)果判斷是否檢測到xss漏洞。dom監(jiān)聽器實(shí)現(xiàn)了對響應(yīng)頁面的dom結(jié)構(gòu)的實(shí)時(shí)監(jiān)聽,從而實(shí)現(xiàn)對響應(yīng)頁面交互型xss漏洞的成功檢測。

      附圖說明

      圖1是本發(fā)明第一實(shí)施例提供的一種交互xss的檢測方法的流程圖;

      圖2是本發(fā)明另一實(shí)施例提供的一種交互xss的檢測方法的流程圖;

      圖3是本發(fā)明第二實(shí)施例提供的一種交互xss的檢測系統(tǒng)的結(jié)構(gòu)圖。

      具體實(shí)施方式

      為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。

      本發(fā)明實(shí)施例中,首先發(fā)送構(gòu)造的帶有特征值的檢測請求到web服務(wù)器,并接收web服務(wù)器反饋的響應(yīng)頁面,解析預(yù)先在響應(yīng)頁面注入的dom監(jiān)聽器,以實(shí)現(xiàn)對響應(yīng)頁面的dom結(jié)構(gòu)的監(jiān)聽;解析并執(zhí)行預(yù)先在響應(yīng)頁面注入的智能事件模擬器,以觸發(fā)響應(yīng)頁面的dom結(jié)構(gòu)上的各種事件;通過已經(jīng)解析dom監(jiān)聽器,監(jiān)聽響應(yīng)頁面的dom結(jié)構(gòu)是否有變化,根據(jù)監(jiān)聽結(jié)果判斷是否檢測到xss漏洞。

      為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實(shí)施例來進(jìn)行說明。

      實(shí)施例一:

      圖1示出了本發(fā)明第一實(shí)施例提供的一種交互xss漏洞的檢測方法的流程圖,詳述如下:

      步驟s11,發(fā)送構(gòu)造的帶有特征值的檢測請求至web服務(wù)器,并接收所述web服務(wù)器返回的響應(yīng)頁面;

      該步驟中,xss檢測工具接收并保存客戶端向web服務(wù)器發(fā)送的http請求,根據(jù)所述http請求構(gòu)造出特征值;具體地,以接收并保存的用戶http請求為基礎(chǔ),逐個(gè)修改每一個(gè)http請求的參數(shù)值,將所述參數(shù)值修改成特征值。所述特征值為一個(gè)字符串,其目的是嘗試進(jìn)行xss的注入攻擊。比如一個(gè)特征值可以是:<divid=”xss123”></div>,如果頁面上沒做xss編碼保護(hù),則這個(gè)div將會(huì)作為一個(gè)dom節(jié)點(diǎn)插入到dom結(jié)構(gòu)里。另外,針對不同的頁面輸出點(diǎn),所構(gòu)造的特征值也可能會(huì)不同;比如上面描述的特征值可以應(yīng)用在輸出點(diǎn)為html的場景,如果輸出點(diǎn)在javascript代碼中,則構(gòu)造的特征值就需要是符合javascript語法的可以破壞輸出點(diǎn)上下文結(jié)構(gòu)的字符串。

      根據(jù)xss檢測工具接收并存儲(chǔ)的http請求構(gòu)造出特征值后,發(fā)送帶有所述特征值的檢測請求到web服務(wù)器,web服務(wù)器在接收到所述檢測請求后,對檢測請求作出響應(yīng),并反饋響應(yīng)頁面到xss檢測工具。

      步驟s12,解析預(yù)先在所述響應(yīng)頁面注入的dom監(jiān)聽器,以隨時(shí)監(jiān)聽所述響應(yīng)頁面的dom結(jié)構(gòu)的變化情況;

      所述dom監(jiān)聽器也是一段javascript代碼,實(shí)現(xiàn)了對響應(yīng)頁面的dom結(jié)構(gòu)的實(shí)時(shí)監(jiān)聽,當(dāng)響應(yīng)頁面的dom結(jié)構(gòu)由于事件被觸發(fā)等情況的發(fā)生而發(fā)生改變時(shí),可通過dom監(jiān)聽器很好的監(jiān)聽到這一變化。

      步驟s13,解析預(yù)先在所述響應(yīng)頁面注入的智能事件模擬器,以通過所述智能事件模擬器發(fā)現(xiàn)并自動(dòng)觸發(fā)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件;

      該步驟中,xss檢測工具在接收到web服務(wù)器反饋的響應(yīng)頁面后,向所述響應(yīng)頁面注入智能事件模擬器,所述智能事件模擬器是一段javascript代碼,用于發(fā)現(xiàn)并自動(dòng)觸發(fā)響應(yīng)頁面的dom結(jié)構(gòu)上的各種事件。xss檢測工具解析并執(zhí)行智能事件模擬器,以通過智能事件模擬器發(fā)現(xiàn)并自動(dòng)觸發(fā)所接收的響應(yīng)頁面的dom結(jié)構(gòu)上的各種事件。

      優(yōu)選地,所述通過所述智能事件模擬器發(fā)現(xiàn)并自動(dòng)觸發(fā)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件,具體包括:

      遍歷經(jīng)解析后的所述響應(yīng)頁面的dom結(jié)構(gòu)中所有控件;

      模擬觸發(fā)所述控件包含的各種事件。

      具體地,智能事件模擬器被解析并執(zhí)行時(shí),首先遍歷響應(yīng)頁面的dom結(jié)構(gòu)中包含的所有控件,根據(jù)所述控件中包含的事件,模擬觸發(fā)控件中包含的各種事件;例如,可以模擬觸發(fā)click事件、focus事件、mouseover事件等等。智能事件模擬器的執(zhí)行可以達(dá)到識(shí)別并模擬用戶的效果,在智能事件模擬器執(zhí)行后xss檢測工具得到響應(yīng)頁面完整的dom結(jié)構(gòu)。

      以下代碼為javascript示例代碼模擬的觸發(fā)一個(gè)按鈕的點(diǎn)擊事件:

      varbuttonelement=document.getelementbyid("mockclickbtn");

      buttonelement.click();

      步驟s14,根據(jù)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件的被觸發(fā)情況及所述dom監(jiān)聽器的監(jiān)聽結(jié)果判斷是否存在xss漏洞。

      該步驟中,在智能事件模擬器執(zhí)行過程中,識(shí)別并模擬與用戶的交互過程,使響應(yīng)頁面展現(xiàn)出完整的dom結(jié)構(gòu),此過程中需要實(shí)時(shí)監(jiān)控響應(yīng)頁面的dom結(jié)構(gòu)是否出現(xiàn)了變化,因?yàn)闄z測請求的參數(shù)中含有可能修改響應(yīng)頁面當(dāng)前dom結(jié)構(gòu)的特征值,在智能事件模擬器觸發(fā)之后,就可能改變響應(yīng)頁面的dom結(jié)構(gòu);如假設(shè)注入的特征值為“<divname='xss10001001'id="104879601">xsstest</div>”,一旦經(jīng)模擬事件觸發(fā)并成功注入,頁面的dom中將會(huì)新插入一個(gè)name為‘xss10001001’的div。即響應(yīng)頁面的dom結(jié)構(gòu)已發(fā)生了變化,此時(shí)就需要解析預(yù)先在響應(yīng)頁面注入的dom監(jiān)聽器,由dom監(jiān)聽器實(shí)時(shí)監(jiān)聽響應(yīng)頁面的dom結(jié)構(gòu)的變化情況。

      優(yōu)選地,所述根據(jù)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件的被觸發(fā)情況及所述dom監(jiān)聽器的監(jiān)聽結(jié)果,判斷是否存在xss漏洞,具體包括:

      解析智能事件模擬器,以使所述dom監(jiān)聽器隨時(shí)監(jiān)聽所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件被觸發(fā)后,所述響應(yīng)頁面的dom結(jié)構(gòu)的變化情況;

      根據(jù)監(jiān)聽到的響應(yīng)頁面的dom結(jié)構(gòu)中是否存在新增加的所述特征值,判斷是否發(fā)現(xiàn)xss漏洞。

      具體地,在執(zhí)行智能事件模擬器后,響應(yīng)頁面的dom結(jié)構(gòu)中所包含的各種事件會(huì)被觸發(fā),從而改變響應(yīng)頁面的dom結(jié)構(gòu),這時(shí)采用已經(jīng)解析的dom監(jiān)聽器監(jiān)聽此變化;在dom監(jiān)聽器被解析后,使用mutationobserver監(jiān)聽頁面dom結(jié)構(gòu)的變化,mutationobserver是一個(gè)能監(jiān)聽dom結(jié)構(gòu)變化的接口;當(dāng)mutationobserver監(jiān)聽到響應(yīng)頁面dom結(jié)構(gòu)中出現(xiàn)了新增節(jié)點(diǎn),并且此新增節(jié)點(diǎn)的注入值為所述特征值,則說明特征值注入成功,即發(fā)現(xiàn)了xss漏洞。如上述注入特征值為“<divname='xss10001001'id="104879601">xsstest</div>”的示例中,在經(jīng)智能事件模擬器模擬事件觸發(fā)后,響應(yīng)頁面的dom結(jié)構(gòu)中若出現(xiàn)新插入一個(gè)name為’xss10001001’的div,則說明特征值注入成功,發(fā)現(xiàn)xss漏洞。

      優(yōu)選地,在根據(jù)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件的被觸發(fā)情況及所述dom監(jiān)聽器的監(jiān)聽結(jié)果,判斷是否發(fā)現(xiàn)xss漏洞之后,還包括:

      在確認(rèn)發(fā)現(xiàn)xss漏洞時(shí),上報(bào)檢測結(jié)果,所述檢測結(jié)果包括:響應(yīng)頁面信息、輸出點(diǎn)信息。

      若dom監(jiān)聽器監(jiān)聽到特征值注入成功,則確認(rèn)發(fā)現(xiàn)xss漏洞,之后,將確認(rèn)發(fā)現(xiàn)的xss漏洞連同響應(yīng)頁面信息、輸出點(diǎn)信息等相關(guān)信息通過ajax方式提交給xss檢測工具。

      優(yōu)選地,在所述發(fā)送構(gòu)造的帶有特征值的檢測請求至web服務(wù)器之前,還包括:設(shè)置xss漏洞檢測工具為代理;將xss檢測工具設(shè)置代理是為了方便xss檢測工具收集用戶向web瀏覽器發(fā)送的請求信息,從而為后續(xù)構(gòu)造出帶有特征值的檢測請求奠定基礎(chǔ)。

      如圖2所示,優(yōu)選地,在所述解析預(yù)先在所述響應(yīng)頁面注入的智能事件模擬器之前,包括:

      解析所述響應(yīng)頁面,以檢測所述響應(yīng)頁面在頁面初始化時(shí)生成的頁面元素的xss漏洞;

      具體地,在web服務(wù)器對檢測請求做出響應(yīng)頁面注入智能事件模擬器后,對所述響應(yīng)頁面作出解析,完成對響應(yīng)頁面初始化時(shí)執(zhí)行的javascript和css生成的頁面元素的xss漏洞的檢測。先對響應(yīng)頁面進(jìn)行解析,檢測出未與用戶交互時(shí),響應(yīng)頁面本身所存在的漏洞,以便后續(xù)dom監(jiān)聽器更好的監(jiān)聽由于交互造成的響應(yīng)頁面的dom結(jié)構(gòu)的變化,發(fā)現(xiàn)交互xss漏洞的存在,從而使得檢測結(jié)果更全面。

      本發(fā)明第一實(shí)施例中,首先發(fā)送帶有特征值的檢測請求到web服務(wù)器,并接收web服務(wù)器對檢測請求反饋的響應(yīng)頁面;解析預(yù)先注入的dom監(jiān)聽器,實(shí)現(xiàn)對響應(yīng)頁面的dom結(jié)構(gòu)的監(jiān)聽;在響應(yīng)頁面注入智能事件模擬器代碼,對響應(yīng)頁面解析時(shí)執(zhí)行智能事件模擬器代碼,智能事件模擬器的執(zhí)行將自動(dòng)識(shí)別并觸發(fā)頁面控件的事件,從而執(zhí)行所有響應(yīng)頁面中需由用戶交互才能觸發(fā)執(zhí)行的javascript和css腳本。在智能事件模擬器執(zhí)行的過程中,已經(jīng)解析的dom監(jiān)聽器,監(jiān)聽由于智能事件模擬器的執(zhí)行而引起的響應(yīng)頁面的dom結(jié)構(gòu)的變化;一旦發(fā)現(xiàn)注入的特征值插入到響應(yīng)頁面的dom結(jié)構(gòu)中造成dom結(jié)構(gòu)變化,則確認(rèn)發(fā)現(xiàn)xss漏洞。另外,本發(fā)明實(shí)施例中在執(zhí)行智能事件模擬器前首先對響應(yīng)頁面作出解析,檢測出響應(yīng)頁面原有的xss漏洞,再由智能事件模擬器模擬用戶的交互過程,引出交互過程中產(chǎn)生的xss漏洞,并由dom監(jiān)聽器發(fā)現(xiàn)并上報(bào)交互過程產(chǎn)生的xss漏洞,從而能夠更全面的檢測出響應(yīng)頁面不同類型的xss漏洞,提高了web服務(wù)器的安全性能。

      應(yīng)理解,在本發(fā)明實(shí)施例中,上述各過程的序號(hào)的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對本發(fā)明實(shí)施例的實(shí)施過程構(gòu)成任何限定。

      實(shí)施例二:

      圖3示出了本發(fā)明第二實(shí)施例提供的一種交互xss漏洞的檢測系統(tǒng)的結(jié)構(gòu)圖為了便于說明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分。所述交互xss漏洞的檢測系統(tǒng)包括:檢測請求發(fā)送單元31,dom監(jiān)聽器解析單元32,智能事件模擬器解析單元33,判斷單元34,其中:

      檢測請求發(fā)送單元31,用于發(fā)送構(gòu)造的帶有特征值的檢測請求至web服務(wù)器,并接收所述web服務(wù)器返回的響應(yīng)頁面;

      該步驟中,檢測系統(tǒng)中的檢測請求發(fā)送單元31接收并保存客戶端向web服務(wù)器發(fā)送的http請求,根據(jù)所述http請求構(gòu)造出特征值;具體地,以接收并保存的用戶http請求為基礎(chǔ),逐個(gè)修改每一個(gè)http請求的參數(shù)值,將所述參數(shù)值修改成特征值。所述特征值為一個(gè)字符串,其目的是嘗試進(jìn)行xss的注入攻擊。比如一個(gè)特征值可以是:<divid=”xss123”></div>,如果頁面上沒做xss編碼保護(hù),則這個(gè)div將會(huì)作為一個(gè)dom節(jié)點(diǎn)插入到dom結(jié)構(gòu)里。另外,針對不同的頁面輸出點(diǎn),所構(gòu)造的特征值也可能會(huì)不同;比如上面描述的特征值可以應(yīng)用在輸出點(diǎn)為html的場景,如果輸出點(diǎn)在javascript代碼中,則構(gòu)造的特征值就需要是符合javascript語法的可以破壞輸出點(diǎn)上下文結(jié)構(gòu)的字符串。

      根據(jù)檢測請求發(fā)送單元31接收并存儲(chǔ)的http請求構(gòu)造出特征值后,發(fā)送帶有所述特征值的檢測請求到web服務(wù)器,web服務(wù)器在接收到所述檢測請求后,對檢測請求作出響應(yīng),并反饋響應(yīng)頁面到xss檢測工具。

      dom監(jiān)聽器解析單元32,用于解析預(yù)先在所述響應(yīng)頁面注入的dom監(jiān)聽器,以隨時(shí)監(jiān)聽所述響應(yīng)頁面的dom結(jié)構(gòu)的變化情況;

      所述dom監(jiān)聽器也是一段javascript代碼,實(shí)現(xiàn)了對響應(yīng)頁面的dom結(jié)構(gòu)的實(shí)時(shí)監(jiān)聽,當(dāng)響應(yīng)頁面的dom結(jié)構(gòu)由于事件被觸發(fā)等情況的發(fā)生而發(fā)生改變時(shí),可通過dom監(jiān)聽器很好的監(jiān)聽到這一變化。

      智能事件模擬器解析單元33,用于解析預(yù)先在所述響應(yīng)頁面注入的智能事件模擬器,以通過所述智能事件模擬器發(fā)現(xiàn)并自動(dòng)觸發(fā)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件;

      檢測請求發(fā)送單元31在接收到web服務(wù)器反饋的響應(yīng)頁面后,由智能事件模擬器解析單元33向所述響應(yīng)頁面注入智能事件模擬器,所述智能事件模擬器是一段javascript代碼,用于發(fā)現(xiàn)并自動(dòng)觸發(fā)響應(yīng)頁面的dom結(jié)構(gòu)上的各種事件。智能事件模擬器解析單元33解析并執(zhí)行智能事件模擬器,以通過智能事件模擬器發(fā)現(xiàn)并自動(dòng)觸發(fā)所接收的響應(yīng)頁面的dom結(jié)構(gòu)上的各種事件。

      優(yōu)選地,所述智能事件模擬器解析單元33包括:

      遍歷模塊,用于遍歷經(jīng)解析后的所述響應(yīng)頁面的dom結(jié)構(gòu)中所有控件;

      事件觸發(fā)模塊,用于模擬觸發(fā)所述控件包含的各種事件。

      具體地,智能事件模擬器被解析并執(zhí)行時(shí),首先遍歷響應(yīng)頁面的dom結(jié)構(gòu)中包含的所有控件,根據(jù)所述控件中包含的事件,模擬觸發(fā)控件中包含的各種事件;例如,可以模擬觸發(fā)click事件、focus事件、mouseover事件等等。智能事件模擬器的執(zhí)行可以達(dá)到識(shí)別并模擬用戶的效果,在智能事件模擬器執(zhí)行后xss檢測工具得到響應(yīng)頁面完整的dom結(jié)構(gòu)。

      判斷單元34,用于根據(jù)所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件的被觸發(fā)情況及所述dom監(jiān)聽器的監(jiān)聽結(jié)果判斷是否存在xss漏洞。

      在智能事件模擬器執(zhí)行過程中,識(shí)別并模擬與用戶的交互過程,使響應(yīng)頁面展現(xiàn)出完整的dom結(jié)構(gòu),此過程中需要實(shí)時(shí)監(jiān)控響應(yīng)頁面的dom結(jié)構(gòu)是否出現(xiàn)了變化,因?yàn)闄z測請求的參數(shù)中含有可能修改響應(yīng)頁面當(dāng)前dom結(jié)構(gòu)的特征值,在智能事件模擬器觸發(fā)之后,就可能改變響應(yīng)頁面的dom結(jié)構(gòu);如假設(shè)注入的特征值為“<divname='xss10001001'id="104879601">xsstest</div>”,一旦經(jīng)模擬事件觸發(fā)并成功注入,頁面的dom中將會(huì)新插入一個(gè)name為‘xss10001001’的div。即響應(yīng)頁面的dom結(jié)構(gòu)已發(fā)生了變化,此時(shí)就需要解析預(yù)先在響應(yīng)頁面注入的dom監(jiān)聽器,由dom監(jiān)聽器實(shí)時(shí)監(jiān)聽響應(yīng)頁面的dom結(jié)構(gòu)的變化情況。

      優(yōu)選地,所述判斷單元34,具體包括:

      dom結(jié)構(gòu)監(jiān)聽模塊,用于解析智能事件模擬器,以使所述dom監(jiān)聽器隨時(shí)監(jiān)聽所述響應(yīng)頁面的dom結(jié)構(gòu)上的事件被觸發(fā)后,所述響應(yīng)頁面的dom結(jié)構(gòu)的變化情況;

      漏洞判斷模塊,用于根據(jù)監(jiān)聽到的響應(yīng)頁面的dom結(jié)構(gòu)中是否存在新增加的所述特征值,判斷是否發(fā)現(xiàn)xss漏洞。

      在執(zhí)行智能事件模擬器后,響應(yīng)頁面的dom結(jié)構(gòu)中所包含的各種事件會(huì)被觸發(fā),從而改變響應(yīng)頁面的dom結(jié)構(gòu),這時(shí)采用已經(jīng)解析的dom監(jiān)聽器監(jiān)聽此變化;所述dom監(jiān)聽器也是一段javascript代碼;在dom監(jiān)聽器被解析后,使用mutationobserver監(jiān)聽頁面dom結(jié)構(gòu)的變化,mutationobserver是一個(gè)能監(jiān)聽dom結(jié)構(gòu)變化的接口;當(dāng)mutationobserver監(jiān)聽到響應(yīng)頁面dom結(jié)構(gòu)中出現(xiàn)了新增節(jié)點(diǎn),并且此新增節(jié)點(diǎn)的注入值為所述特征值,則說明特征值注入成功,即發(fā)現(xiàn)了xss漏洞。如上述注入特征值為“<divname='xss10001001'id="104879601">xsstest</div>”的示例中,在經(jīng)智能事件模擬器模擬事件觸發(fā)后,響應(yīng)頁面的dom結(jié)構(gòu)中若出現(xiàn)新插入一個(gè)name為’xss10001001’的div,則說明特征值注入成功,發(fā)現(xiàn)xss漏洞。

      優(yōu)選地,所述檢測系統(tǒng)還包括:

      檢測結(jié)果上報(bào)單元,用于在確認(rèn)發(fā)現(xiàn)xss漏洞時(shí),上報(bào)檢測結(jié)果,所述檢測結(jié)果包括:響應(yīng)頁面信息、輸出點(diǎn)信息。

      若dom監(jiān)聽器監(jiān)聽到特征值注入成功,則確認(rèn)發(fā)現(xiàn)xss漏洞,之后,將確認(rèn)發(fā)現(xiàn)的xss漏洞連同響應(yīng)頁面信息、輸出點(diǎn)信息等相關(guān)信息通過ajax方式提交給xss檢測工具。

      優(yōu)選地,所述檢測系統(tǒng)還包括設(shè)置單元,用于設(shè)置xss漏洞檢測工具為代理;將xss檢測工具設(shè)置代理是為了方便xss檢測工具收集用戶向web瀏覽器發(fā)送的請求信息,從而為后續(xù)構(gòu)造出帶有特征值的檢測請求奠定基礎(chǔ)。

      所述檢測系統(tǒng)還包括:

      響應(yīng)頁面解析單元,用于解析所述響應(yīng)頁面,以檢測所述響應(yīng)頁面在頁面初始化時(shí)生成的頁面元素的xss漏洞;

      在web服務(wù)器對檢測請求作出響應(yīng)頁面注入智能事件模擬器后,對所述響應(yīng)頁面作出解析,完成對響應(yīng)頁面初始化時(shí)執(zhí)行的javascript和css生成的頁面元素的xss漏洞的檢測。先對響應(yīng)頁面進(jìn)行解析,檢測出未與用戶交互時(shí),響應(yīng)頁面本身所存在的漏洞,以便后續(xù)dom監(jiān)聽器更好的監(jiān)聽由于交互造成的響應(yīng)頁面的dom結(jié)構(gòu)的變化,發(fā)現(xiàn)交互xss漏洞的存在,從而使得檢測結(jié)果更全面。

      本發(fā)明第二實(shí)施例中,檢測請求發(fā)送單元發(fā)送帶有特征值的檢測請求到web服務(wù)器,并接收web服務(wù)器對檢測請求反饋的響應(yīng)頁面;dom監(jiān)聽器解析單元解析預(yù)先注入的dom監(jiān)聽器,實(shí)現(xiàn)對響應(yīng)頁面的dom結(jié)構(gòu)的監(jiān)聽;由智能事件模擬器解析單元向響應(yīng)頁面注入智能事件模擬器代碼,對響應(yīng)頁面解析時(shí)執(zhí)行智能事件模擬器代碼,智能事件模擬器的執(zhí)行將自動(dòng)識(shí)別并觸發(fā)頁面控件的事件,從而執(zhí)行所有響應(yīng)頁面中需由用戶交互才能觸發(fā)執(zhí)行的javascript和css腳本。在智能事件模擬器執(zhí)行的過程中,已經(jīng)解析的dom監(jiān)聽器,監(jiān)聽由于智能事件模擬器的執(zhí)行而引起的響應(yīng)頁面的dom結(jié)構(gòu)的變化;一旦發(fā)現(xiàn)注入的特征值插入到響應(yīng)頁面的dom結(jié)構(gòu)中造成dom結(jié)構(gòu)變化,則確認(rèn)發(fā)現(xiàn)xss漏洞。另外,本發(fā)明實(shí)施例中在執(zhí)行智能事件模擬器前首先對響應(yīng)頁面作出解析,檢測出響應(yīng)頁面原有的xss漏洞,再由智能事件模擬器模擬用戶的交互過程,引出交互過程中產(chǎn)生的xss漏洞,并由dom監(jiān)聽器發(fā)現(xiàn)并上報(bào)交互過程產(chǎn)生的xss漏洞,從而能夠更全面的檢測出響應(yīng)頁面不同類型的xss漏洞,提高了web服務(wù)器安全性。

      本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。

      所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。

      在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,系統(tǒng)或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。

      所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

      另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。

      所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

      以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。

      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
      1