<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 一種基于滲透性測試的Web漏洞掃描系統設計與實(shí)現

一種基于滲透性測試的Web漏洞掃描系統設計與實(shí)現

作者: 時(shí)間:2009-11-30 來(lái)源:網(wǎng)絡(luò ) 收藏
2.3通信協(xié)議設計

自從1990年以來(lái),人們就用Http協(xié)議進(jìn)行數據傳輸,Http協(xié)議是一種在TCP/IP之上的request/response型協(xié)議。多數Http數據傳輸由請求服務(wù)器上的某種資源開(kāi)始,通過(guò)網(wǎng)絡(luò )上的一些中介,如代理、網(wǎng)關(guān)等到達服務(wù)器,而后服務(wù)器處理請求并送回應答。但是Http 1.0并不完全支持各層代理、緩沖、持續的連接以及虛擬主機等技術(shù)。Http請求及應答數據包如圖2所示。


對于目標系統,使用滲透性的探測方法,滲透性探測方法主要通過(guò)更改Http請求信息包中的某些信息,從目標系統的應答信息包中獲取狀態(tài)信息及相關(guān)內容以判斷目標系統的輸入或軟件錯誤,或其他一些配置信息,所以要求開(kāi)發(fā)者可以自定義Http請求信息包。

Libwhisker是一個(gè)全面的API,是由一些不同的與應用程序相交互的功能模塊構成的數據庫,它有如下的特點(diǎn):

(1)可以與Http 0.9,1.0以及1.1相通信;

(2)可以建立持續的連接;

(3)能有效地支持代理;

(4)支持Anti-IDS技術(shù);

(5)支持SSL;

(6)支持Basic和NTLM認證。

所以使用Libwhisker與Http通信,以通過(guò)Libwhisker來(lái)自定義Http協(xié)議信息包以及提供相應的支持。

2.4特征信息數據庫

系統的核心就是特征信息數據庫,特征信息數據庫保存了遠程Web系統可能存在的各類(lèi)Web隱患和漏洞的獲取或攻擊信息或代碼。通過(guò)給遠程Web系統發(fā)送此數據庫中的數據以獲得目標Web系統的安全性。

考慮到信息的共性與個(gè)性、方便性等因素,特征數據庫信息大體分為以下幾類(lèi):

(1)Web系統軟件版本信息數據庫:此類(lèi)信息以檢測當前Web系統相應軟件的版本隱患及其漏洞信息,以及Web系統相應軟件版本最新信息,并給出相關(guān)的提示。

(2)Web系統授權信息:此類(lèi)信息以檢測當前Web相應系統資源的授權情況以及漏洞信息。

(3)漏洞控測信息數據庫:此類(lèi)數據庫是最主要的信息數據庫,包含各類(lèi)Web服務(wù)器中存在的各種隱患和漏洞探測信息。具體而言分為以下幾個(gè)大類(lèi):認證攻擊、授權攻擊、識別“支持”文件、識別包含文件、目錄攻擊、識別錯誤、一般的輸入驗證、源代碼泄露、URL編碼、Unicode編碼、Base64編碼、識別請求方法、SQL注入、會(huì )話(huà)攻擊、目錄遍歷攻擊以及跨站點(diǎn)腳本攻擊等。

特征信息數據庫各記錄分別為:

Web服務(wù)器類(lèi)別、檢測目標URI、預設返回信息、Http方法、描述信息。

2.5 Web系統的實(shí)現

由于允許多用戶(hù)同時(shí)使用服務(wù)器端,要求針對不同目標的掃描、檢測任務(wù)同時(shí)進(jìn)行,所以執行掃描機制就成了服務(wù)器端設計中的首要問(wèn)題。根據服務(wù)器并行處理的理論,而且使用B/S的總體結構,考慮到開(kāi)發(fā)語(yǔ)言和開(kāi)發(fā)環(huán)境,對于掃描服務(wù)器的構架選擇Linux平臺下的PERL開(kāi)發(fā)語(yǔ)言,使用并發(fā)服務(wù)器的模型。

并發(fā)服務(wù)器的思想是每一個(gè)客戶(hù)的請求并不由服務(wù)器直接處理,而是由服務(wù)器創(chuàng )建相應的子進(jìn)程進(jìn)行處理。對于每一個(gè)子進(jìn)程而言,客戶(hù)可以設定其掃描范圍包括不只一個(gè)目標地址,同樣由服務(wù)器創(chuàng )建相應的子進(jìn)程(即二級進(jìn)程)來(lái)處理,以提高系統的掃描速度。利用Linux下的fork函數來(lái)完成一、二級進(jìn)程處理功能。其流程如圖3所示。


另外,由于PERL本身的效率問(wèn)題,為進(jìn)一步提高漏洞掃描系統的性能,對目標系統首先利用現階段已經(jīng)非常成熟的工具NMAP進(jìn)行端口掃描,以獲得開(kāi)放的端口,在此基礎上進(jìn)行進(jìn)一步的端口掃描,以判斷在此端口上是否提供的是Web服務(wù)。

為進(jìn)一步加快掃描速度,系統使用掃描知識庫來(lái)保存已掃描過(guò)的主機信息,在獲取用戶(hù)請求以后,首先檢測知識庫,若有知識庫中保存相關(guān)信息,則不進(jìn)行新的掃描工作,只需調用相關(guān)的知識庫信息返回給用戶(hù)即可。

在對端口滲透性探測的實(shí)現方式上,使用插件腳本的方式來(lái)進(jìn)行。用戶(hù)可以通過(guò)參數選取相應的插件執行,以進(jìn)行更為完整的漏洞掃描。插件可以動(dòng)態(tài)地升級,其實(shí)現方式是每次升級插件時(shí)都將已升級的插件根據既定的順序添加在插件調用清單當中,在插件執行過(guò)程中,主控程序根據插件調用清單中的插件執行順序依次調用插件。插件的執行結果擴充了各類(lèi)數據庫探測信息,這樣即可以增加各類(lèi)特殊的信息,進(jìn)行更為深入的掃描目標Web系統以發(fā)現更新、更多的漏洞信息。

3結語(yǔ)

提出對Web系統進(jìn)行安全掃描的必要性,以及Web漏洞掃描的基本原理,在此基礎上提出并設計了一個(gè)完整的Web漏洞掃描系統,介紹了它的協(xié)議基礎以及組成模塊。

本文設計的Web漏洞掃描系統已經(jīng)完全實(shí)現,并經(jīng)過(guò),該掃描器基于瀏覽器/服務(wù)器結構,可以?huà)呙鑅NIX/Windows等多種平臺下的Web系統,與同類(lèi)產(chǎn)品相比,可以看出該掃描器具有如下特點(diǎn):利用多進(jìn)程/知識庫等技術(shù)加快了掃描速度;掃描封裝在插件中使系統具有可擴展性;使用B/S結構使得用戶(hù)操作方便,掃描結果詳盡。此掃描系統實(shí)現了Web隱患掃描和漏洞檢測,并可以提供漏洞的修補建議,將會(huì )在很大程度上確保Web系統安全。

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: Web 測試 漏洞掃描 系統設計

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>