• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于用戶行為模擬的XSS漏洞檢測

      2017-06-01 11:35:29丹,源,兵,華,
      大連理工大學(xué)學(xué)報 2017年3期
      關(guān)鍵詞:表單爬蟲漏洞

      王 丹, 劉 源, 趙 文 兵, 付 利 華, 杜 曉 林

      ( 北京工業(yè)大學(xué) 計算機學(xué)院, 北京 100124 )

      基于用戶行為模擬的XSS漏洞檢測

      王 丹*, 劉 源, 趙 文 兵, 付 利 華, 杜 曉 林

      ( 北京工業(yè)大學(xué) 計算機學(xué)院, 北京 100124 )

      為改進XSS漏洞檢測系統(tǒng)中對復(fù)雜網(wǎng)頁漏洞注入點發(fā)現(xiàn)不夠充分、動態(tài)地分析目標(biāo)站點的響應(yīng)信息不足等問題,改善XSS漏洞檢測系統(tǒng)的注入點提取、攻擊測試向量生成和響應(yīng)分析等,提出了基于用戶行為模擬的XSS漏洞檢測方法.通過分析網(wǎng)頁結(jié)構(gòu)找到多種非格式化注入點,并通過綜合考慮字符串長度、字符種類等因素對攻擊向量進行了優(yōu)化,以繞過服務(wù)器的過濾函數(shù),縮短漏洞測試所用的時間.測試結(jié)果表明所提方法提高了漏洞注入點的檢測覆蓋率,提升了XSS漏洞的檢測效果.

      XSS漏洞;檢測;Headless瀏覽器;Ghost.py

      0 引 言

      近年來,隨著網(wǎng)絡(luò)的廣泛使用,網(wǎng)絡(luò)安全問題也日益突出.OWASP(Open Web Application Security Project)公布的2013年十大網(wǎng)絡(luò)應(yīng)用安全風(fēng)險中,跨站腳本漏洞XSS(cross site scripting) 名列第3,已成為當(dāng)前各類網(wǎng)站需共同面對的常見的安全風(fēng)險之一.XSS漏洞攻擊是一種注入型的惡意攻擊方式,它通過某種手段向網(wǎng)頁中嵌入惡意的腳本代碼,用戶正常瀏覽該網(wǎng)頁時,這些嵌入到網(wǎng)頁的惡意腳本代碼就會被客戶端瀏覽器自動解析執(zhí)行,造成對正常用戶的攻擊,引發(fā)掛馬、釣魚、盜取用戶數(shù)據(jù)、劫持用戶網(wǎng)絡(luò)等惡意行為[1-2].XSS漏洞的產(chǎn)生源于未對來自用戶輸入的不可信數(shù)據(jù)進行驗證,以及反射回瀏覽器而沒有進行編碼或轉(zhuǎn)義的情況下被網(wǎng)絡(luò)應(yīng)用程序所應(yīng)用.由于很多網(wǎng)絡(luò)應(yīng)用在開發(fā)過程中忽略了必要及有效的輸入驗證,就容易被跨站腳本攻擊.如何在大量網(wǎng)頁中找到隱藏的漏洞注入點并進行漏洞檢測是防范XSS漏洞的關(guān)鍵之一,而且在網(wǎng)頁內(nèi)容日益豐富的今天,越來越多的網(wǎng)頁內(nèi)容會由Ajax和JavaScript 生成,人工檢測漏洞注入點顯然是不現(xiàn)實的,需要盡可能地采用自動化的方法.目前,針對XSS漏洞檢測工具的研究還不是很充分[3-6],使用靜態(tài)爬蟲框架如果要獲得由Ajax生成的內(nèi)容,需要對頁面的HTML代碼進行解析,找到發(fā)送異步請求的方式以及目標(biāo)URL來加載Ajax,流程非常復(fù)雜,對隱藏式的漏洞注入點的覆蓋率很低.本文在設(shè)計網(wǎng)頁爬蟲時,采用了模擬瀏覽器行為的方法,像用戶操作一樣讓瀏覽器內(nèi)核來解析JavaScript和加載Ajax,使漏洞注入點的發(fā)現(xiàn)工作更有效和準確.

      本文提出基于Headless瀏覽器模擬瀏覽器的網(wǎng)絡(luò)爬蟲框架,改善傳統(tǒng)靜態(tài)爬蟲對XSS漏洞注入點檢測覆蓋率小的不足;采用基于Ghost.py庫解析JavaScript和加載Ajax,并采用Beautiful Soup作為HTML解析器的解析方法,盡可能多地獲取網(wǎng)頁中的隱藏式漏洞注入點和非格式化漏洞注入點,擴大漏洞注入點獲取的覆蓋率.在漏洞攻擊測試向量的設(shè)計方面,通過綜合考慮字符串長度、字符種類等因素對XSS Filter Evasion Cheat Sheet[7]進行優(yōu)化,并適當(dāng)應(yīng)用字符編碼對XSS攻擊向量進行變形,合理使用冗余的尖括號或標(biāo)簽,以繞過服務(wù)器的過濾函數(shù),縮短漏洞檢測時間.

      1 檢測系統(tǒng)設(shè)計

      本文設(shè)計并實現(xiàn)的XSS漏洞檢測系統(tǒng)主要由爬蟲模塊和漏洞檢測模塊組成.

      1.1 爬蟲模塊

      爬蟲模塊負責(zé)將網(wǎng)頁中的URL爬取出來供漏洞檢測模塊依次進行檢測.本文使用開源的Ghost.py作為引擎,采用迭代的深度優(yōu)先爬蟲策略,不斷地循環(huán)抓取網(wǎng)頁存入URL隊列.由于使用了瀏覽器引擎的API,該模塊可以動態(tài)加載頁面,并觸發(fā)網(wǎng)頁中的事件以獲取JavaScript或Ajax生成的新的URL存入URL隊列.下面描述爬蟲算法的設(shè)計和事件觸發(fā)過程.

      (1)爬蟲算法

      網(wǎng)絡(luò)爬蟲按照一定規(guī)則爬取特定網(wǎng)頁的程序或者腳本,它從一個或者若干初始網(wǎng)頁開始,爬取頁面中符合規(guī)則的鏈接,然后將這些新鏈接放入等待爬取的URL隊列中.接著遍歷這個等待隊列,進入下一個循環(huán),直到滿足設(shè)定好的結(jié)束條件后跳出循環(huán)終止.本文構(gòu)建了輕量的爬蟲框架,采用的爬蟲算法方案為迭代的深度優(yōu)先搜索.這是一種平衡深度優(yōu)先搜索和寬度優(yōu)先搜索的一個折中策略,其思想是對深度優(yōu)先搜索使用一個深度界限,一旦搜索的深度在某個層次以下,深度界限便強制停止對這條路徑的搜索.與深度優(yōu)先搜索相同,它的空間需求小,但分支可以達到和寬度優(yōu)先搜索一樣的效果,用戶可以設(shè)定該深度界限,當(dāng)這個值為0時,系統(tǒng)只檢測當(dāng)前頁面.這樣一來,方便了用戶在單頁面的漏洞檢測和全站的漏洞檢測功能間的切換.

      (2)觸發(fā)事件

      為了得到頁面中隱藏的DOM元素,本文借助Ghost.py觸發(fā)網(wǎng)頁中的事件,并通過Headless 瀏覽器對JavaScript和Ajax進行解析.在這之前,需要找到網(wǎng)頁中可以觸發(fā)的事件,即含有事件屬性的標(biāo)簽.本文選用了Beautiful Soup庫,可以很方便地搜索帶有事件屬性的標(biāo)簽,之后再用Ghost.py提供的API模擬瀏覽器行為觸發(fā)事件.下面的一段代碼是找到帶有onclick事件的標(biāo)簽并模擬點擊:

      list = soup.find_all(onclick=True)

      for tag in list:

      ghost.click(′′′*[onclick = "%s"]′′′ % tag[′onclick′], expect_loading=True)

      這段代碼可以將當(dāng)前頁面中所有含有點擊事件的標(biāo)簽點擊一遍,對事件進行點擊后,可能引發(fā)瀏覽器解析JavaScript和加載Ajax,產(chǎn)生DOM元素的改變或者URL的跳轉(zhuǎn),對此需要采取不同的方式應(yīng)對.如果跳轉(zhuǎn)到新的URL,存儲當(dāng)前URL并返回之前的頁面即可;若產(chǎn)生DOM元素,則需再次尋找是否出現(xiàn)了新的事件,直至不再產(chǎn)生DOM元素為止.相關(guān)過程如算法1所示.

      算法1 頁面DOM元素展開算法

      輸入:第一次請求得到的頁面HTML代碼

      輸出:展開后的頁面HTML代碼

      步驟1 獲取所有含有事件的標(biāo)簽存入tag_list,去除重復(fù)的標(biāo)簽.

      步驟2 模擬點擊tag_list中下一個未訪問過的標(biāo)簽.若所有標(biāo)簽都被訪問過則結(jié)束.

      步驟3 將該標(biāo)簽存入visit[],標(biāo)記為訪問過.

      步驟4 若頁面跳轉(zhuǎn),執(zhí)行步驟5;否則,執(zhí)行步驟6.

      步驟5 將跳轉(zhuǎn)后的頁面URL存入URL_list,執(zhí)行步驟2.

      步驟6 如果DOM元素改變,執(zhí)行步驟1.

      1.2 漏洞檢測模塊

      XSS漏洞檢測模塊包含頁面分析模塊和動態(tài)判斷模塊,同樣使用Ghost.py作為引擎,通過Beautiful Soup庫進行頁面內(nèi)容分析,提取注入點.頁面分析模塊負責(zé)對爬取到的注入點進行提取,動態(tài)判斷模塊對注入點填充攻擊向量并提交攻擊請求.每次攻擊測試向量被提交后,均由動態(tài)判斷模塊分析結(jié)果,判斷該注入點是否存在XSS漏洞并存儲結(jié)果.具體來說,就是用Ghost.py庫提供的API解析執(zhí)行JavaScript進行攻擊向量的提交過程,以及根據(jù)部分響應(yīng)頁面的響應(yīng)信息判斷XSS漏洞是否存在.下面進行具體介紹.

      頁面分析模塊主要負責(zé)提取注入點并將其存入注入點列表中.如前所述,執(zhí)行頁面中的事件、解析JavaScript和Ajax可以獲取頁面中的隱藏注入點.而對于非格式化注入點,則需要根據(jù)一定的匹配規(guī)則,將允許用戶輸入數(shù)據(jù)的元素和與之對應(yīng)的負責(zé)提交請求的元素從頁面中提取出來.本文對現(xiàn)有的網(wǎng)絡(luò)環(huán)境中可能的注入點和交互點格式進行了分析歸納,并按照這些可能的格式對注入點和交互點進行查找.注入點與交互點的特征分類如表1所示.“input”包含了HTML5環(huán)境下,input標(biāo)簽type屬性全部可能的值,其中一些type屬性的值可以使input允許用戶輸入數(shù)據(jù),它們位于表中的注入點一列;而另一些type屬性的值可以使input成為按鈕,允許用戶點擊,它們在表中位于交互點一列.此外,注入點還可能以textarea標(biāo)簽存在.當(dāng)注入點是input標(biāo)簽時,它的值存在value屬性中,而當(dāng)注入點是textarea標(biāo)簽時,它的值可以通過innerHTML獲得.相比于注入點的格式,交互點的格式更加繁多,因此還需要通過分析頁面的DOM結(jié)構(gòu)來進行提?。ǔ#⑷朦c和其對應(yīng)的交互點,以如下幾種結(jié)構(gòu)存在于HTML頁面中.

      表1 注入點與交互點的特征分類

      〈input type="text" id="header_search_input" /〉

      〈input type="button" onclick="search($(′#header_search_input′).val())" /〉

      或者:

      〈input type="text" id="header_search_input" /〉

      〈div〉〈input type="button" onclick="search($(′#header_search_input′).val())" /〉〈/div〉

      又或者是更復(fù)雜的:

      〈div〉〈input type="text" id="header_search_input" /〉〈/div〉

      〈div〉

      〈div〉〈input type="button" onclick="search($(′#header_search_input′).val())" /〉〈/div〉

      〈div〉〈span class="SomeClass"〉Clickable〈/span〉〈/div〉

      〈/div〉

      對于第1種情況,獲取注入點時應(yīng)該將第1個input元素匹配為注入點,并根據(jù)表中的信息,從第1個input的兄弟節(jié)點找到第2個input,匹配為其對應(yīng)的交互點.對于第2種情況,如果第1個input的兄弟節(jié)點中沒有能夠匹配為交互點的標(biāo)簽,則從它的子節(jié)點中尋找.而對于較為復(fù)雜的第3種情況,第1個input的兄弟節(jié)點和子節(jié)點中均沒有能夠匹配為交互點的標(biāo)簽,則從第1個input的父節(jié)點開始,按照之前的規(guī)則再尋找一遍.此時,第2個input標(biāo)簽和span標(biāo)簽都有可能是注入點對應(yīng)的交互點,因此,將它們都存入input的數(shù)據(jù)結(jié)構(gòu)中,之后的動態(tài)判斷模塊會確定哪一個可以執(zhí)行提交請求的功能.網(wǎng)頁中的XSS漏洞注入點的解析過程如算法2所示.

      算法2 網(wǎng)頁中的XSS漏洞注入點的解析

      輸入:網(wǎng)頁源碼

      輸出:注入點列表

      步驟1 按照表1總結(jié)的注入點特征找到所有的標(biāo)簽,存入Input列表.

      步驟2 找到所有表單,存入Form列表.

      步驟3 對于Form列表中每個元素,同樣按照注入點特征找到該表單中的標(biāo)簽,并保存在該表單的輔助標(biāo)簽屬性中.

      步驟4 從Input列表中去掉和表單元素中相同的注入點標(biāo)簽.

      步驟5 對Input列表中每一個元素

      ①設(shè)置當(dāng)前位置cur為該Input元素在DOM樹中的位置.

      ②按照表1總結(jié)的交互點特征,從cur的所有兄弟節(jié)點及其子節(jié)點中找到交互點,并保存在該注入點的對應(yīng)交互點列表中.如果不存在交互點,執(zhí)行③.

      ③將cur賦值為cur的父節(jié)點,執(zhí)行②.

      步驟6 結(jié)束.

      2 XSS漏洞攻擊向量

      目前,大部分網(wǎng)站都會對用戶提交的數(shù)據(jù)進行一定程度的攔截、過濾和凈化[8-9],這種處理方式雖然在一定程度上緩解了攻擊的發(fā)生,但是仍不能從根本上消除漏洞[10].為了提高XSS漏洞動態(tài)檢測的效果,本文針對網(wǎng)絡(luò)應(yīng)用中常見的數(shù)據(jù)過濾機制進行了研究,采取了一些過濾機制的逃逸技術(shù)[11],并應(yīng)用這些技術(shù)對攻擊向量進行優(yōu)化,將其應(yīng)用于提交攻擊向量階段中.過濾機制逃逸技術(shù)包括測試腳本編碼、混淆字符、JavaScript函數(shù)、層疊樣式表、畸形標(biāo)簽等方面的處理.最終,攻擊向量成為經(jīng)過優(yōu)化后的XSS Filter Evasion Cheat Sheet,相對于傳統(tǒng)的XSS Filter Evasion Cheat Sheet,測試樣例數(shù)量少,但效率更高,可以繞過很多XSS過濾器.

      2.1 XSS漏洞攻擊向量的生成

      首先,需要填寫XSS攻擊向量.本文使用Ghost.py提供的填寫表單的函數(shù)在表單欄填寫XSS攻擊向量,如:

      ghost.set_field_value("input[name=%s]" % name, xss)

      考慮到注入點可能會存在前端驗證,如限制輸入長度、過濾某些字符等,這會導(dǎo)致一些XSS攻擊向量無法提交.本文設(shè)計了如下的使用JavaScript移除相關(guān)驗證函數(shù)的方式繞過這些驗證,以開展攻擊注入:

      input.removeAttribute("onfocus");

      input.removeAttribute("placeholder");

      對于格式化注入點,還可以使用如下的Ghost.py提供的模擬JavaScript語句來提交表單:

      ghost.evaluate("document.querySelector(′form′)[′submit′]();", expect_loading=True)

      本文設(shè)計的自動填充攻擊向量并提交的算法可以歸納為算法3中的描述.

      算法3 自動填充攻擊向量并提交

      輸入:格式化和非格式化注入點的列表

      輸出:漏洞檢測結(jié)果

      步驟1 遍歷格式化和非格式化注入點的列表.

      步驟2 如果為格式化注入點,執(zhí)行步驟4.

      步驟3 如果為非格式化注入點,遍歷其鏈接的所有交互點.

      ①點擊當(dāng)前交互點,模擬提交行為.

      ②如果提交成功,記錄該交互點,執(zhí)行步驟4.

      步驟4 提交探子請求,如果在響應(yīng)頁面中檢測不到探子,執(zhí)行步驟1.

      步驟5 遍歷保存全部XSS攻擊向量的列表.

      步驟6 用當(dāng)前攻擊向量填充注入點并提交.

      步驟7 得到響應(yīng)頁面后,根據(jù)動態(tài)檢測模塊提供的方法判斷是否存在XSS漏洞,如果存在執(zhí)行步驟8;否則執(zhí)行步驟1.

      步驟8 存儲漏洞在DOM中的位置、當(dāng)前頁面URL及其信息.

      步驟9 結(jié)束.

      2.2 漏洞的動態(tài)判別

      漏洞的動態(tài)判別就是在動態(tài)提交攻擊向量后,通過對響應(yīng)結(jié)果進行分析和判斷,得出漏洞是否存在的結(jié)果.一般的方法是先進行探子請求.對于探子請求,如果在響應(yīng)頁面中檢測不到探子,檢測過程就會收到返回值,并跳過對全部預(yù)設(shè)的XSS攻擊向量的提交.如果被測試的某注入點存在XSS漏洞攻擊,在攻擊向量提交給服務(wù)器并返回響應(yīng)頁面后,提交的攻擊向量將會在瀏覽器中被解析執(zhí)行.其中,可分為如下幾種情況:

      (1)如果提交的是腳本型的攻擊向量,響應(yīng)頁面會執(zhí)行“alert(′XSS′);”代碼.此時,本文動態(tài)判斷模塊將調(diào)用Ghost.py的函數(shù)wait_for_alert(),該函數(shù)可檢測響應(yīng)頁面是否執(zhí)行了“alert(′XSS′);”代碼,如果執(zhí)行了,則可認為該注入點存在XSS漏洞.

      (2)如果提交的是資源型攻擊向量,如攻擊系統(tǒng)資源、攻擊網(wǎng)絡(luò)帶寬等,響應(yīng)頁面會向指定的地址即http://wedge.sinaapp.com發(fā)送一個請求,攻擊向量不同,請求的路徑也不同.不同的請求會調(diào)用響應(yīng)邏輯將第三方服務(wù)器的數(shù)據(jù)庫中某一行數(shù)據(jù)修改為不同的值.之后,本文的漏洞檢測模塊會發(fā)出一個對第三方服務(wù)器的請求以獲得這一行數(shù)據(jù),如果這一行數(shù)據(jù)被修改成了請求中預(yù)設(shè)的值,那么則可認為該注入點存在XSS漏洞.

      3 測試與結(jié)果分析

      本文將DVWA[12]作為測試程序,DVWA是用PHP和MySQL編寫的一套用于常規(guī)漏洞教學(xué)和檢測的脆弱性測試程序,包含了SQL注入、XSS等常見的一些安全漏洞.同時,本文在本地搭建了PHP和MySQL環(huán)境并使用XAMPP,它是一個集成了Apache、MySQL、PHP以及PERL的功能強大的建站集成軟件包,支持Windows、Linux和OS X操作系統(tǒng),并提供phpMyAdmin、Webalizer等搭建網(wǎng)絡(luò)環(huán)境的常用工具及組件.在本地安裝完XAMPP和DVWA后,將DVWA應(yīng)用移動到XAMPP安裝目錄下的htdocs文件夾中,搭建DVWA的工作就完成了.啟動XAMPP應(yīng)用,輸入網(wǎng)址http://127.0.0.1/dvwa即可查看首頁.

      3.1 功能測試

      本文首先對DVWA進行漏洞檢測.通過Ghost.py提供的API模擬登錄,并將脆弱性測試程序的安全等級設(shè)置為中等:

      ghost.open(′http://127.0.0.1/dvwa/′)

      ghost.fill("form", {"username": ′admin′, "password": ′password′})

      ghost.click(′input[type=submit]′, expect_loading=True)

      ghost.open(′http://127.0.0.1/dvwa/security.php′)

      ghost.evaluate("document.getElementsByName(′security′)[0].value = ′medium′;")

      ghost.click(′input[type=submit]′, expect_loading=True)

      安全等級為中等時,XSS表單服務(wù)器代碼為

      〈?php

      if(!array_key_exists("name", $_GET) || $_GET[′name′] == NULL || $_GET[′name′] == ′′) {

      $isempty = true;

      } else {

      echo ′〈pre〉′;

      echo ′Hello ′ . str_replace(′〈script〉′, ′′, $_GET[′name′]);

      echo ′〈/pre〉′;

      }

      ?〉

      從后臺邏輯可以看出,符合不帶有〈script〉標(biāo)簽且可以執(zhí)行的腳本都能夠繞過該過濾函數(shù).這一點可從下面程序運行時顯示的結(jié)果中看出:

      〈IMG SRC=http://wedge.sinaapp.com/4〉

      〈BODY ONLOAD=alert(′XSS′)〉

      〈META HTTP-EQUIV="refresh"CONTENT="0;url=javascript:alert(′XSS′);"〉

      這個結(jié)果符合之前對后臺代碼邏輯的分析,說明使用本文的方法可以成功檢測出表單是否具有XSS漏洞.由于篇幅有限,這里不列出檢測結(jié)果的界面.

      之后,將本文設(shè)計的系統(tǒng)用于檢測整個DVWA包含的網(wǎng)頁,共計訪問了19個頁面,總共涉及8個注入點,測試了8個注入點,最終檢測出http://127.0.0.1/dvwa/vulnerabilities/xss_r/頁面上的表單存在反射型XSS漏洞,http://127.0.0.1/dvwa/vulnerabilities/xss_s/頁面上的表單存在存儲型XSS漏洞.

      3.2 對比測試

      本文的設(shè)計方案在對比中命名為XSS scanner based on Headless browser,與XSS-Me、WebInspect、Acunetix Web Vulnerability Scanner 及Paros Proxy進行對比測試.測試目標(biāo)網(wǎng)站為南方周末網(wǎng)和大街網(wǎng).

      XSS-Me是一個用于測試反射型XSS漏洞的漏洞檢測工具,目前還不支持存儲型XSS漏洞的測試.它的原理是在提交表單時,用預(yù)定義的XSS攻擊向量替換表單中的參數(shù)值,以進行測試,它可以自動尋找注入點并提交請求.

      WebInspect是一款自動化的網(wǎng)絡(luò)應(yīng)用漏洞評估系統(tǒng).它支持對目前應(yīng)用Web 2.0技術(shù)的網(wǎng)站進行手動輔助檢測,具有掃描速度快、安全評估范圍廣和安全掃描結(jié)果準確的優(yōu)點.并且許多傳統(tǒng)掃描工具無法識別的安全漏洞也可以被WebInspect檢測到.

      Acunetix Web Vulnerability Scanner簡稱AWVS,是一個自動化的網(wǎng)絡(luò)應(yīng)用程序安全測試工具,它通過網(wǎng)絡(luò)爬蟲檢測網(wǎng)站中含有的常見的安全漏洞,包括XSS漏洞、SQL注入和弱口令等.優(yōu)點是掃描速度快、漏洞發(fā)現(xiàn)率高.

      Paros Proxy是一個基于Java的HTTP/HTTPS代理,可以用于檢測網(wǎng)絡(luò)應(yīng)用程序的漏洞.它通過網(wǎng)絡(luò)爬蟲爬取整個網(wǎng)站并檢測其中的安全漏洞.它帶有內(nèi)置的實用工具,可以代理HTTP業(yè)務(wù),支持動態(tài)地編輯、查看HTTP消息等.

      從表2中可以看出,對于頁面格式較為簡單的南方周末網(wǎng),現(xiàn)有工具基本都能檢測出存在XSS漏洞,而對于頁面格式較為復(fù)雜,包含隱藏注入點和非格式化注入點較多的大街網(wǎng),不含有解析JavaScript和分析頁面DOM格式功能的漏洞檢測工具就無法檢測出其中的漏洞.

      表2 對比測試

      4 結(jié) 語

      本文的XSS漏洞檢測方法可以很好地完成包括尋找隱藏式注入點、觸發(fā)攻擊的工作,提高了注入點發(fā)現(xiàn)的覆蓋率,有效判定其引發(fā)的XSS漏洞,并且更加方便,易于二次開發(fā).本文的研究仍需進一步的完善,包括:嘗試引入多線程的架構(gòu)以提高爬蟲執(zhí)行效率,將本文的方法應(yīng)用于其他注入式漏洞,如SQL注入等,可擴大應(yīng)用范圍,并根據(jù)應(yīng)用結(jié)果加以完善.

      [1] ANTUNES N, VIEIRA M. Enhancing penetration testing with attack signatures and interface monitoring for the detection of injection vulnerabilities in web services [C] // Proceedings — 2011 IEEE International Conference on Services Computing, SCC 2011. Piscataway: IEEE Computer Society, 2011:104-111.

      [2] 吳子敬,張憲忠,管 磊,等. 基于反過濾規(guī)則集和自動爬蟲的XSS漏洞深度挖掘技術(shù)[J]. 北京理工大學(xué)學(xué)報, 2012, 32(4):395-401.

      WU Zijing, ZHANG Xianzhong, GUAN Lei,etal. Technique for deep discovering XSS vulnerability based on anti-filter rules set and automatic crawler program [J]. Transactions of Beijing Institute of Technology, 2012, 32(4):395-401. (in Chinese)

      [3] 沈壽忠,張玉清. 基于爬蟲的XSS漏洞檢測工具設(shè)計與實現(xiàn)[J]. 計算機工程, 2009, 35(21):151-154. SHEN Shouzhong, ZHANG Yuqing. Design and implementation of XSS vulnerability detection tool based on crawler [J]. Computer Engineering, 2009, 35(21):151-154. (in Chinese)

      [4] CHEN Janmin, WU Chialun. An automated vulnerability scanner for injection attack based on injection point [C] // ICS 2010 — International Computer Symposium. Piscataway: IEEE Computer Society, 2010:113-118.

      [5] VAN DEURSEN A, MESBAH A, NEDERLOF A. Crawl-based analysis of web applications:Prospects and challenges [J]. Science of Computer Programming, 2015, 97(P1):173-180.

      [6] WAN Fangfang, XIE Xusheng. Mining techniques of XSS vulnerabilities based on web crawler [J]. Applied Mechanics and Materials, 2014, 556-562:6290-6293.

      [7] OWASP. XSS filter evasion cheat sheet [EB/OL]. (2016-10-04). https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet.

      [8] SUNDARESWARAN S, SQUICCIARINI A C. XSS-Dec:A hybrid solution to mitigate cross-site scripting attacks [C] // Data and Applications Security and Privacy XXVI — 26th Annual IFIP WG 11.3 Conference, DBSec 2012, Proceedings. Heidelberg:Springer Verlag, 2012:223-238.

      [9] ANTUNES J, NEVES N, CORREIA M,etal. Vulnerability discovery with attack injection [J]. IEEE Transactions on Software Engineering, 2010, 36(3):357-370.

      [10] THUMMALAPENTA S, LAKSHMI K V, SINHA S,etal. Guided test generation for web applications [C] // 2013 35th International Conference on Software Engineering, ICSE 2013 — Proceedings. Washington D C: IEEE Computer Society, 2013:162-171.

      [11] 王 欣. WEB應(yīng)用系統(tǒng)安全檢測關(guān)鍵技術(shù)研究[D]. 北京:北京郵電大學(xué), 2011.

      WANG Xin. Research on key technologies of web application security detection [D]. Beijing: Beijing University of Posts and Telecommunications, 2011. (in Chinese)

      [12] Dewhurst Security. Damn Vulnerable Web App(DVWA) [CP/OL]. [2016-01-10]. http://www.dvwa.co.uk/.

      XSS vulnerability detection based on user′s behavior simulation

      WANG Dan*, LIU Yuan, ZHAO Wenbing, FU Lihua, DU Xiaolin

      ( College of Computer Science, Beijing University of Technology, Beijing 100124, China )

      To deal with the problems, such as low coverage of found vulnerability injection points in complex web page, lacking of dynamical analysis for response message from target website faced by the detection system of XSS vulnerability, a method to detect XSS vulnerability based on user′s behavior simulation is proposed to make improvement for the detection system of XSS vulnerability on extracting injection points, generating attack test vector and analyzing response results. By searching for a variety of the unformatted injection points through analyzing web page structure as well as taking into consideration the length of the string and the type of the character, the attack test vector is optimized and it can bypass the server filter function and shorten the vulnerability detection time. Test results show that the proposed method can improve the detection coverage rate of the injection point and the detection effect of XSS vulnerability.

      XSS vulnerability; detection; Headless browser; Ghost.py

      1000-8608(2017)03-0302-06

      2016-07-05;

      2017-01-17.

      國家自然科學(xué)基金重大研究計劃培育項目(91546111);北京市自然科學(xué)基金資助項目(4173072).

      王 丹*(1969-),女,教授,E-mail:neuwd@sina.com.cn.

      TP308

      A

      10.7511/dllgxb201703013

      猜你喜歡
      表單爬蟲漏洞
      利用網(wǎng)絡(luò)爬蟲技術(shù)驗證房地產(chǎn)灰犀牛之說
      漏洞
      電子表單系統(tǒng)應(yīng)用分析
      華東科技(2021年9期)2021-09-23 02:15:24
      基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
      淺談網(wǎng)頁制作中表單的教學(xué)
      利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
      電子測試(2018年1期)2018-04-18 11:53:04
      大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
      電子制作(2017年9期)2017-04-17 03:00:46
      三明:“兩票制”堵住加價漏洞
      漏洞在哪兒
      兒童時代(2016年6期)2016-09-14 04:54:43
      高鐵急救應(yīng)補齊三漏洞
      中超| 信丰县| 英吉沙县| 松江区| 北流市| 南安市| 陕西省| 江源县| 南阳市| 萍乡市| 万州区| 韶关市| 福州市| 花莲市| 南安市| 松江区| 宣武区| 穆棱市| 新河县| 丹寨县| 公安县| 伊川县| 新邵县| 永和县| 永年县| 潼关县| 潞城市| 溆浦县| 澎湖县| 平江县| 东丽区| 紫金县| 南郑县| 西昌市| 安龙县| 滨州市| 中西区| 弥渡县| 瓮安县| 西乌珠穆沁旗| 贵溪市|