SS漏洞。
[0111]需要說明的是,上述鏈接、測試字符串和遠程訪問代碼等均是實現本發(fā)明一個實施例的相關示例,實際上可以根據需要確定不同的待測試鏈接,編輯不同的測試字符串和遠程訪問代碼,并且可以為多個待測試鏈接分別添加測試字符串進行檢測,其中每個鏈接的檢測過程相同,在此不再贅述。
[0112]接收單元13,用于接收訪問請求,當通過指定地址獲取到來自網站的訪問請求,貝Ij確定網站存在XSS漏洞。
[0113]當指定地址獲取到來自網站的訪問請求,說明網站已經將遠程訪問代碼寫入了其數據庫,正是在網站存在XSS漏洞時,網站才會將遠程訪問代碼寫入其數據庫,并在遠程訪問代碼執(zhí)行時,向指定地址發(fā)送訪問請求。因此一旦指定地址獲取到了到來自網站的訪問請求,就可以判定其存在XSS漏洞。
[0114]由于添加測試字符串的待測試鏈接包括網站的所有鏈接,或用戶指定的部分鏈接,為每個鏈接可以分別添加一個測試字符串,從而在其中任意一個鏈接對應網頁被顯示時,指定地址就可以接收到網站的訪問請求,從而確定網站存在XSS漏洞。無需為指定鏈接發(fā)包來等待指定鏈接的響應,從而實現大量鏈接的網站XSS漏洞檢測,提高XSS漏洞檢測的覆蓋率。
[0115]優(yōu)選地,還包括:指令單元14,用于接收并解析用戶輸入指令,以確定用戶指定網站的鏈接,
[0116]其中,獲取單元11用于獲取用戶指定網站的鏈接以及與指定網站相關聯(lián)的其他鏈接。
[0117]根據本發(fā)明的一個實施例,允許用戶根據需要指定需要測試的鏈接。由于不同的網站鏈接數量不同,鏈接類型也不同,即使針對同一網站進行檢測,不同的用戶所需檢測內容也不盡相同。因此可以為用戶提供一個操作平臺(例如圖形用戶界面),供用戶根據需要指定要檢測的網站,以及具體需要檢測的鏈接類型和鏈接數量,從而實現根據需要的精準檢測,避免了對于已確認安全的網站或鏈接重復檢測,提升用戶體驗的同時,降低了檢測操作的資源消耗。
[0118]根據本發(fā)明實施例之一所揭示,獲取單元11包括:
[0119]監(jiān)聽子單元111,用于通過旁路偵聽而獲得的超文本傳輸協(xié)議請求包;
[0120]確定子單元112,用于利用請求包所包含的鏈接確定屬于已知特定網站的關聯(lián)新鏈接,將關聯(lián)新鏈接作為待檢測的鏈接。
[0121]旁路偵聽技術本是基于交換機的“共享”原理,所有接入該交換機的計算機設備將共同接收到相同的數據包,即當一臺計算機向網絡上另一臺計算機發(fā)送數據的時候,或者一個請求進入該交換機的時候,盡管最終可能只有一臺計算機接收該數據或請求,其實該網絡上的其他計算機也能收到該數據或請求,只不過其他計算機的網卡識別到該數據或請求的目的地不是自身時,直接將該數據或請求過濾掉了。也就是說,以太網卡都構造了硬件的“過濾器”,這個過濾器會忽略與自身MAC地址不相符合的信息。旁路偵聽技術正是利用這一特點,通過主動關閉網卡的過濾器,來接收整個交換機中的數據信息,實現偵聽。因此,可以知曉,實施旁路偵聽適宜在最接近目標服務器的交換機處實現,理論上,只要將配置有旁路偵聽技術環(huán)境的計算機設備接入該交換機,即可實現偵聽,從而獲取交換機的數據信息,提取相關數據。
[0122]根據上述實施例的描述可知,本發(fā)明所要檢測的網站一般是由用戶指定的,一般是應用本發(fā)明的方法的企業(yè)自身的一個或多個已知網站,這些網站擁有一些共同特征,其鏈接均解釋到特定的一些IP地址段上、其域名所有人均為該企業(yè)或該企業(yè)的客戶,或者,是該企業(yè)參與管理的目標網站。具體地,除了可以提供界面供用戶進行認為設定,也可以是以鏈接和/或IP地址和/或域名注冊特征信息為基礎進行綜合判斷。因此,本發(fā)明的已知特定網站的識別依據,不能僅僅理解為某個域名或其IP地址,還應包括雖未進行人為明文設定,但實質上是該企業(yè)所要納入的檢測對象,包括任何解析到實質上屬于部分已知特定網站已經占據的IP地址的新增域名的鏈接。
[0123]本發(fā)明區(qū)別于通過現有技術中通過爬蟲技術獲取網站和/或鏈接的重點之一,在于本發(fā)明具有確定的已知特定網站,并且,這些已知特定網站,既可以初始化人為給定,也可以由以本方法實現的軟件動態(tài)識別添加,而不必有如爬蟲技術般嚴格依賴于種子URL。而且,這些已知特定網站在本質上是一系列的鏈接,既可以使用一個列表進行獨立維護,也可以將這個列表用作鏈接庫,甚至直接將這個列表用作待掃描隊列。具體如何利用這一列表,只是數據庫技術在本方法中的靈活結合運用,例如,一種方式中,已知特定網站列表本質上即是本發(fā)明的待掃描隊列,對于新鏈接,順序追加到列表并附上相應的表征未掃描的標識即可,掃描后更改這些標識為表征已掃描的描述。另一種方式,該列表是獨立的,主要用于記錄各個域名和相應的IP地址,而另外設置待掃描隊列,當識別出關聯(lián)新鏈接時,新鏈接的域名將被添加到該列表中,而新鏈接本身則被添加到待掃描隊列中,以后凡是包含此域名的鏈接也均不必再行解析,而直接將其添加到待掃描隊列中。再一種方式,已知特定網站列表、鏈接庫、待掃描隊列均是相互獨立的,已知特定網站列表僅已知特定網站有關的存儲域名,該鏈接庫用于存儲所有已經識別的與已知特定網站有關的鏈接,而待掃描隊列僅用于存儲從鏈接庫中獲得的新鏈接,這種方式保證了各類型數據的獨立性,可用做更為復雜的用途。
[0124]根據本發(fā)明實施例之一所揭示,添加單元12包括:
[0125]識別子單元121,用于識別出待檢測的鏈接參數部分;
[0126]字符串子單元122,用于在參數部分加入XSS測試字符串,以形成測試鏈接。
[0127]待檢測的鏈接可以是URL,一般完整的、帶有授權部分的URL格式如下:
[0128]協(xié)議://用戶名:密碼@子域名.域名.頂級域名:端口號/目錄/文件名.文件后綴?參數=值#標志
[0129]其中的協(xié)議部分用來告知瀏覽器如何處理將要打開的文件。最常用的模式是超文本傳輸協(xié)議(Hypertext Transfer Protocol,縮寫為HTTP),這個協(xié)議可以用來訪問網絡。
[0130]協(xié)議部分后邊的內容主要用來指明文件所在的服務器的名稱或IP地址,其中包含著用來傳送對服務器上的數據庫進行動態(tài)詢問時所需要的參數,通過為該參數加入XSS測試字符串,使得網站將測試鏈接寫入數據庫后,測試鏈接中的遠程訪問代碼運行時,能夠回連至指定地址,并由網站向指定地址發(fā)送訪問請求。
[0131]當然,在某些情況下,鏈接中包含多個參數,例如:
[0132]鏈接 http://xxxxx/abc ? name = admin,
[0133]其中僅包含一個參數name,該參數的值為admin,
[0134]而對于另一個鏈接,
[0135]http://xxxxx/abc ? name = admin&password = admin,
[0136]其中存在兩個參數,其一為name,其二為password,那么在添加XSS測試字符串時,可以為兩個參數分別添加XSS測試字符串時。
[0137]優(yōu)選地,接收單元13通過指定地址接收到來自網站發(fā)送的超文本傳輸協(xié)議請求,或在指定地址的腳本程序被網站執(zhí)行時,通過指定地址獲取到來自網站的訪問請求。
[0138]指定地址接收到來自網站發(fā)送的超文本傳輸協(xié)議請求;或者指定地址的腳本程序被網站執(zhí)行。
[0139]指定地址接后去來自網站的訪問請求主要包括兩種方式:
[0140]其一是指定地址接收到來自網站發(fā)送的超文本傳輸協(xié)議請求,超文本傳輸協(xié)議主要用來訪問網絡,即當指定地址和網站不處于同一終端或服務器時,網站可以通過網絡向指定地址發(fā)送超文本傳輸協(xié)議請求,使得指定地址獲悉其檢測的網絡存在XSS漏洞。
[0141]其二是指定地址的腳本程序被網站執(zhí)行,當網站執(zhí)行了 Javascript腳本程序(即測試字符串中的遠程訪問代碼),說明該網站在接收到測試鏈接后,將遠程訪問代碼寫入了數據庫,即該網站存在XSS漏洞,從而網站根據遠程訪問代碼中定義的指定地址,向指定地址發(fā)送訪問請求,以使指定地址獲取檢測的網絡存在XSS漏洞。
[0142]優(yōu)選地,該還包括:顯示單元15,用于顯示XSS漏洞的具體信息。
[0143]通過提供一圖形用戶界面,用于提供給用戶進行網站接的選定,用戶通過向該圖形用戶界面輸入與需要檢測的網站相關的內容而完成設定,進而對選定的網站進行檢測。圖形用戶界面除了可以為用戶提供網站的選定,還可以為用戶提供具體鏈接的選定,由于對某個網站進行XSS漏洞檢測時,該網站存在多個鏈接,但是其中的部分鏈接已知是安全的,例如網站關于參數name的鏈接共有300個,而其