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