漏洞檢測(cè)方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)安全技術(shù)領(lǐng)域,特別是涉及一種漏洞檢測(cè)方法和裝置。
【背景技術(shù)】
[0002]現(xiàn)有的很多網(wǎng)站都可能存在一些漏洞,例如,CSRF (Cross-site requestforgery,跨站請(qǐng)求偽造)是一種對(duì)網(wǎng)站的惡意利用,它使黑客可以冒充合法用戶的身份,使合法用戶在不知情的情況下觸發(fā)如金融支付、發(fā)表微博等危險(xiǎn)操作,并可直接導(dǎo)致蠕蟲,危害巨大。
[0003]發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)中至少存在以下技術(shù)問題:
[0004]傳統(tǒng)的漏洞檢測(cè)方法僅支持簡(jiǎn)單的對(duì)頁(yè)面所提交的表單信息進(jìn)行抓取,然后由用戶人工地進(jìn)行修改該數(shù)據(jù)來(lái)確定是否存在漏洞,效率低下。
【發(fā)明內(nèi)容】
[0005]基于此,有必要針對(duì)上述技術(shù)問題,提供一種能提高檢測(cè)效率的漏洞檢測(cè)方法和
>J-U ρ?α裝直。
[0006]一種漏洞檢測(cè)方法,所述方法包括:
[0007]以不帶Cookie的方式訪問待檢測(cè)頁(yè)面,獲取第一表單;
[0008]以攜帶Cookie的方式訪問所述待檢測(cè)頁(yè)面,獲取第二表單;
[0009]判斷所述第一表單與第二表單是否相同,若不相同,則根據(jù)所述第二表單檢測(cè)所述待檢測(cè)頁(yè)面是否存在漏洞。
[0010]一種漏洞檢測(cè)裝置,所述裝置包括:
[0011]第一頁(yè)面訪問模塊,用于以不帶Cookie的方式訪問待檢測(cè)頁(yè)面,獲取第一表單;
[0012]第二頁(yè)面訪問模塊,用于以攜帶Cookie的方式訪問所述待檢測(cè)頁(yè)面,獲取第二表單;
[0013]表單判斷模塊,用于判斷所述第一表單與第二表單是否相同;
[0014]漏洞檢測(cè)模塊,用于如果所述第一表單與第二表單不相同,則根據(jù)所述第二表單檢測(cè)所述待檢測(cè)頁(yè)面是否存在漏洞。
[0015]上述漏洞檢測(cè)方法和裝置,通過(guò)攜帶Cookie和不帶Cookie兩種不同的方式訪問待檢測(cè)頁(yè)面,得到兩個(gè)表單,即第一表單和第二表單,進(jìn)一步判斷第一表單和第二表單是否相同,如果不相同,則再根據(jù)第二表單檢測(cè)待檢測(cè)頁(yè)面是否存在漏洞。由于第二表單是以攜帶Cookie的方式訪問待檢測(cè)頁(yè)面得到的表單,該第二表單中的內(nèi)容能夠用于檢測(cè)頁(yè)面是否存在漏洞,且在訪問待檢測(cè)頁(yè)面時(shí)自動(dòng)按照兩種不同方式進(jìn)行訪問,因此能夠自動(dòng)檢測(cè)出待檢測(cè)頁(yè)面是否存在漏洞,相對(duì)于傳統(tǒng)技術(shù),能夠提高檢測(cè)效率。
【附圖說(shuō)明】
[0016]圖1為一個(gè)實(shí)施例中漏洞檢測(cè)方法的流程示意圖;
[0017]圖2為另一個(gè)實(shí)施例中漏洞檢測(cè)方法的流程示意圖;
[0018]圖3為再一個(gè)實(shí)施例中漏洞檢測(cè)方法的流程示意圖;
[0019]圖4為一個(gè)實(shí)施例中漏洞檢測(cè)裝置的結(jié)構(gòu)框圖;
[0020]圖5為一個(gè)實(shí)施例中漏洞檢測(cè)模塊的結(jié)構(gòu)框圖;
[0021]圖6為另一個(gè)實(shí)施例中漏洞檢測(cè)模塊的結(jié)構(gòu)框圖;
[0022]圖7是實(shí)現(xiàn)本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)的模塊圖。
【具體實(shí)施方式】
[0023]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]除非上下文另有特定清楚的描述,本發(fā)明中的元件和組件,數(shù)量既可以單個(gè)的形式存在,也可以多個(gè)的形式存在,本發(fā)明并不對(duì)此進(jìn)行限定。本發(fā)明中的步驟雖然用標(biāo)號(hào)進(jìn)行了排列,但并不用于限定步驟的先后次序,除非明確說(shuō)明了步驟的次序或者某步驟的執(zhí)行需要其他步驟作為基礎(chǔ),否則步驟的相對(duì)次序是可以調(diào)整的??梢岳斫?,本文中所使用的術(shù)語(yǔ)“和/或”涉及且涵蓋相關(guān)聯(lián)的所列項(xiàng)目中的一者或一者以上的任何和所有可能的組口 ο
[0025]如圖1所示,在一個(gè)實(shí)施例中,提供了一種漏洞檢測(cè)方法,該方法以應(yīng)用于運(yùn)行各種瀏覽器的終端中進(jìn)行舉例說(shuō)明,這些終端包括但不限于臺(tái)式計(jì)算機(jī)、智能手機(jī)、個(gè)人數(shù)字助理、平板電腦和膝上型便攜式電腦等,該方法包括:
[0026]步驟102,以不帶Cookie的方式訪問待檢測(cè)頁(yè)面,獲取第一表單。
[0027]步驟104,以攜帶Cookie的方式訪問所述待檢測(cè)頁(yè)面,獲取第二表單。
[0028]具體的,在數(shù)據(jù)庫(kù)中存儲(chǔ)有大量的待檢測(cè)網(wǎng)址,這些待檢測(cè)網(wǎng)址所對(duì)應(yīng)的頁(yè)面即為待檢測(cè)頁(yè)面。在終端上可運(yùn)行各種瀏覽器,通過(guò)瀏覽器訪問待檢測(cè)頁(yè)面。以不帶Cookie的方式訪問待檢測(cè)頁(yè)面即為在訪問待檢測(cè)頁(yè)面時(shí),不攜帶Cookie中的信息,則得到服務(wù)器返回的HTML文檔中不包含從Cookie中獲取的信息;而以攜帶Cookie的方式訪問檢測(cè)頁(yè)面即為在訪問待檢測(cè)頁(yè)面時(shí)攜帶Cookie中的信息,比如獲取Cookie中的登錄信息,根據(jù)該登錄信息登錄待檢測(cè)頁(yè)面,則得到服務(wù)器返回的HTML文檔中可包含從Cookie中獲取的信息,如用戶的登錄信息。終端通過(guò)這兩種方式訪問待檢測(cè)頁(yè)面,獲得服務(wù)器返回的HTML (超文本標(biāo)記語(yǔ)言)文檔,從而可從返回的HTML文檔中提取表單內(nèi)容。
[0029]步驟106,判斷第一表單與第二表單是否相同,若是,則結(jié)束,否則進(jìn)入步驟108。
[0030]步驟108,根據(jù)第二表單檢測(cè)待檢測(cè)頁(yè)面是否存在漏洞。
[0031]在步驟106中,可通過(guò)檢測(cè)第一表單和第二表單中的字符串是否相同來(lái)判斷第一表單與第二表單是否相同,如果相同,則說(shuō)明不存在漏洞,直接結(jié)束。如果不相同,由于第二表單是以攜帶Cookie的方式訪問待檢測(cè)頁(yè)面得到的表單,也即第二表單是利用了 Cookie所得到的表單,該第二表單中的內(nèi)容能夠用于檢測(cè)頁(yè)面是否存在漏洞,優(yōu)選的,可用于檢測(cè)頁(yè)面中是否存在CSRF漏洞。本實(shí)施例中,由于在訪問待檢測(cè)頁(yè)面時(shí)自動(dòng)按照兩種不同方式進(jìn)行訪問,因此能夠自動(dòng)檢測(cè)出待檢測(cè)頁(yè)面是否存在漏洞,相對(duì)于傳統(tǒng)技術(shù),能夠提高檢測(cè)效率。
[0032]在一個(gè)實(shí)施例中,如圖2所示,提供了一種漏洞檢測(cè)方法,包括:
[0033]步驟202,以不帶Cookie的方式訪問待檢測(cè)頁(yè)面,獲取第一表單,以及以攜帶Cookie的方式訪問所述待檢測(cè)頁(yè)面,獲取第二表單。
[0034]在一個(gè)實(shí)施例中,以不帶Cookie的方式訪問待檢測(cè)頁(yè)面,獲取第一表單,包括:以不帶Cookie的方式訪問待檢測(cè)頁(yè)面獲得第一 HTML文檔,提取第一 HTML文檔中的表單標(biāo)簽(〈/form〉)之間的內(nèi)容,得到第一表單。以攜帶Cookie的方式訪問所述待檢測(cè)頁(yè)面,獲取第二表單包括:獲取Cookie中的登錄信息,根據(jù)登錄信息登錄待檢測(cè)頁(yè)面獲得第二HTML文檔,提取第二 HTML文檔中的表單標(biāo)簽之間的內(nèi)容,得到第二表單。
[0035]步驟204,判斷第一表單與第二表單是否相同,若是,則結(jié)束,否則進(jìn)入步驟206。
[0036]如上所述,可檢測(cè)第一表單和第二表單中的字符串是否相同,如果相同,則第一表單和第二表單相同。
[0037]步驟206,判斷第二表單中是否存在預(yù)設(shè)的敏感性字符串,如果不存在,則結(jié)束,否則進(jìn)入步驟208。
[0038]步驟208,檢測(cè)出待檢測(cè)頁(yè)面存在漏洞。
[0039]敏感性字符串可為預(yù)先設(shè)置在白名單中的字符串,該字符串標(biāo)識(shí)出第二表單可能存在敏感性,可通過(guò)統(tǒng)計(jì)大量存在漏洞的頁(yè)面中包含的敏感性字符串得到。在一個(gè)實(shí)施例中,以檢測(cè)CSRF漏洞為例,白名單中的敏感性字符串包括表示保存、修改和提交的字符串中的至少一個(gè)。
[0040]本實(shí)施例中,當(dāng)判定第一表單與第二表單不相同時(shí),則檢測(cè)第二表單中是否存在白名單中的敏感性字符串,如果不存在,說(shuō)明該待檢測(cè)頁(yè)面不太可能存在漏洞,直接結(jié)束。如果存在,則說(shuō)明該待檢測(cè)頁(yè)面很可能存在漏洞,輸出