[發(fā)明專利]一種動態(tài)檢測XSS漏洞的方法有效
| 申請?zhí)枺?/td> | 201610013323.3 | 申請日: | 2016-01-05 |
| 公開(公告)號: | CN105678170B | 公開(公告)日: | 2018-05-29 |
| 發(fā)明(設(shè)計)人: | 柳毅;凌捷 | 申請(專利權(quán))人: | 廣東工業(yè)大學(xué) |
| 主分類號: | G06F21/57 | 分類號: | G06F21/57 |
| 代理公司: | 廣州嘉權(quán)專利商標(biāo)事務(wù)所有限公司 44205 | 代理人: | 胡輝;鄭澤萍 |
| 地址: | 510090 廣東*** | 國省代碼: | 廣東;44 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 網(wǎng)頁鏈接庫 動態(tài)檢測 威脅性 檢測 獲取請求 監(jiān)控行業(yè) 解析處理 生成規(guī)則 網(wǎng)頁鏈接 信息安全 動態(tài)URL 有效地 瀏覽器 預(yù)設(shè) 填充 解析 頁面 服務(wù)器 應(yīng)用 訪問 | ||
1.一種動態(tài)檢測XSS漏洞的方法,其特征在于,包括:
S1、對Web頁面進行解析后獲得所有靜態(tài)URL和動態(tài)URL,建立初始URL集合;
S2、對初始URL集合進行解析處理后,獲得對應(yīng)的網(wǎng)頁鏈接庫;
S3、依次對網(wǎng)頁鏈接庫中的網(wǎng)頁鏈接進行請求后,獲取請求到的頁面HTML代碼,進而根據(jù)預(yù)設(shè)生成規(guī)則填充頁面的Form表單,生成一個有威脅性的請求,并提交到服務(wù)器;
S4、采用瀏覽器對生成的有威脅性的請求進行模擬訪問,進而檢測獲得XSS漏洞;
所述步驟S3,包括:
S31、依次對網(wǎng)頁鏈接庫中的網(wǎng)頁鏈接進行請求后,獲取請求到的頁面HTML代碼;
S32、提取頁面HTML代碼的DOM樹中的所有表單元素;
S33、根據(jù)表單元素的屬性、頁面HTML代碼以及輸入?yún)^(qū)域的結(jié)構(gòu)對象,計算哈希值;
S34、根據(jù)計算獲得的哈希值,關(guān)聯(lián)到預(yù)存在數(shù)據(jù)庫中的一自定義錯誤數(shù)據(jù)注入代碼后,生成一個有威脅性的請求,并提交到服務(wù)器;
S35、判斷網(wǎng)頁鏈接庫中的網(wǎng)頁鏈接是否請求完畢,若是,則結(jié)束,反之返回執(zhí)行步驟S31。
2.根據(jù)權(quán)利要求1所述的一種動態(tài)檢測XSS漏洞的方法,其特征在于,所述步驟S1,包括:
S11、對Web頁面進行網(wǎng)絡(luò)爬蟲,對其頁面HTML代碼進行掃描后獲得所有靜態(tài)URL;
S12、對Web頁面的JavaScript腳本和通過JavaScript所添加的事件進行提取,將提取到的代碼傳遞給JavaScript引擎進行編譯并執(zhí)行后,獲得所有動態(tài)URL;
S13、將所有靜態(tài)URL和動態(tài)URL存儲到哈希表中,作為初始URL集合。
3.根據(jù)權(quán)利要求1所述的一種動態(tài)檢測XSS漏洞的方法,其特征在于,所述步驟S2,包括:
S21、逐一獲取初始URL集合中的每個URL并進行解析,依次判斷每個URL中是否存在HTML請求;
S22、響應(yīng)于URL中存在HTML請求的情況,獲取該HTML請求的頁面HTML代碼;
S23、對獲取的頁面HTML代碼進行解析后,提取獲得對應(yīng)的網(wǎng)頁鏈接,并將其存儲到網(wǎng)頁鏈接庫中;
S24、判斷初始URL集合中是否存在未處理的URL,若是,則返回執(zhí)行步驟
S21,反之結(jié)束。
4.根據(jù)權(quán)利要求1所述的一種動態(tài)檢測XSS漏洞的方法,其特征在于,所述步驟S4,包括:
S411、初始化模擬瀏覽器控件,響應(yīng)于用戶輸入的有威脅性的請求的URL,向服務(wù)器發(fā)送請求后,獲取服務(wù)器返回的相應(yīng)的頁面;
S412、采用廣度優(yōu)先算法,遍歷該頁面中Ajax應(yīng)用的DOM狀態(tài),并使用增量的方式將獲取的初始DOM狀態(tài)依次添加到狀態(tài)存儲隊列中,同時設(shè)定狀態(tài)深度為0;
S413、對狀態(tài)存儲隊列依次進行出列操作,并采用模擬瀏覽器控件執(zhí)行各DOM狀態(tài)后,判斷該狀態(tài)的狀態(tài)深度是否小于最大狀態(tài)深度,若是,則執(zhí)行步驟S414,反之結(jié)束;
S414、獲取當(dāng)前DOM狀態(tài)下的DOM結(jié)構(gòu)中的JavaScript事件的元素結(jié)點,并依次觸發(fā)事件,比較觸發(fā)事件前后DOM結(jié)構(gòu)是否一樣,若不一樣則將觸發(fā)后的新的DOM狀態(tài)添加到狀態(tài)存儲隊列中,同時執(zhí)行步驟S415;
S415、獲取新的頁面HTML代碼,并判斷是否存在與錯誤數(shù)據(jù)注入代碼相對應(yīng)的反饋數(shù)據(jù),若是,則判斷存在XSS漏洞,反之,返回步驟S413繼續(xù)出列操作直到操作結(jié)束。
5.根據(jù)權(quán)利要求4所述的一種動態(tài)檢測XSS漏洞的方法,其特征在于,所述步驟S415中所述操作結(jié)束的條件為:狀態(tài)深度大于最大狀態(tài)深度或者狀態(tài)存儲隊列為空。
6.根據(jù)權(quán)利要求1所述的一種動態(tài)檢測XSS漏洞的方法,其特征在于,所述步驟S4,包括:
S421、初始化模擬瀏覽器控件,響應(yīng)于用戶輸入的有威脅性的請求的URL,向服務(wù)器發(fā)送請求后,獲取服務(wù)器返回的相應(yīng)的HTML代碼;
S422、判斷獲得的HTML代碼中是否存在XHR的調(diào)用,若存在,則對該HTML代碼中的JavaScript進行代碼匹配后獲得所有JavaScript文件名,并存儲到一集合中;
S423、對該集合進行遍歷,將每個JavaScript文件名與預(yù)存的JavaScript文件特征庫中存儲的文件名進行匹配,并對每個匹配失敗的JavaScript文件名,執(zhí)行步驟S424和步驟S425;
S424、從服務(wù)器下載該JavaScript文件名對應(yīng)的JavaScript文件后,計算該JavaScript文件的哈希值;
S425、將計算獲得的哈希值與預(yù)存的JavaScript文件特征庫中存儲的哈希值進行匹配,若匹配失敗,則獲取該JavaScript文件作為可能的XSS漏洞,反之,返回步驟S423繼續(xù)遍歷直到遍歷結(jié)束。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于廣東工業(yè)大學(xué),未經(jīng)廣東工業(yè)大學(xué)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201610013323.3/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 動態(tài)補償方法、圖像編碼方法及圖像解碼方法
- 晶狀體動態(tài)散光檢測裝置及檢測方法
- 各個動態(tài)檢測領(lǐng)域的錄制控制方法
- 并聯(lián)機床空間動態(tài)精度檢測方法
- 接觸網(wǎng)動態(tài)檢測系統(tǒng)的精度驗證方法
- 動態(tài)動作檢測方法、動態(tài)動作控制方法及裝置
- 一種語音端點檢測方法、裝置、設(shè)備及存儲介質(zhì)
- 基于深度學(xué)習(xí)的胎兒超聲動態(tài)影像檢測方法及系統(tǒng)
- 一種防拆檢測保護電路、實現(xiàn)方法和防拆芯片
- 應(yīng)用程序檢測文件動態(tài)調(diào)整方法、裝置、電子設(shè)備和介質(zhì)





