Web安全測試規(guī)范V1.3_第1頁
Web安全測試規(guī)范V1.3_第2頁
Web安全測試規(guī)范V1.3_第3頁
Web安全測試規(guī)范V1.3_第4頁
Web安全測試規(guī)范V1.3_第5頁
已閱讀5頁,還剩59頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

安全測試工作規(guī)范

文件狀態(tài)[]草稿[√]正式發(fā)布[]正在修改當(dāng)前版本V1.0擬制日期2014-03-04審核日期批準(zhǔn)日期深圳市xx有限公司二〇一四年三月修訂歷史記錄 A-增加M-修訂D-刪除變更版本號日期變更類型

(A*M*D)修改人摘要備注2014-03-04M修改文檔,按照公司目前實(shí)際情況進(jìn)行調(diào)整

目錄1 概述 4 背景簡介 4 適用讀者 4 適用范圍 4 安全測試在項(xiàng)目整體流程中所處的位置 5 安全測試在安全風(fēng)險評估的關(guān)系說明 5 注意事項(xiàng) 5 測試用例級別說明 62 Web安全測試方法 7 安全功能驗(yàn)證 7 漏洞掃描 7 模擬攻擊實(shí)驗(yàn) 72.4 偵聽技術(shù) 73 Appscan工具介紹 8 AppScan工作原理 8 AppScan掃描階段 9 AppScan工具使用 10 AppScan工具測試覆蓋項(xiàng)說明 184 測試用例和規(guī)范標(biāo)準(zhǔn) 19 輸入數(shù)據(jù)測試 20 SQL注入測試 20 命令執(zhí)行測試 25 跨站腳本攻擊測試 26 GET方式跨站腳本測試 28 POST方式跨站腳本測試 29 跨站腳本工具實(shí)例解析 30 權(quán)限管理測試 32 橫向測試 32 縱向測試 33 服務(wù)器信息收集 39 運(yùn)行賬號權(quán)限測試 39 Web服務(wù)器端口掃描 39 文件、目錄測試 40 工具方式的敏感接口遍歷 40 目錄列表測試 42 文件歸檔測試 44 認(rèn)證測試 45 驗(yàn)證碼測試 45 認(rèn)證錯誤提示 46 鎖定策略測試 47 認(rèn)證繞過測試 48 修復(fù)密碼測試 48 不安全的數(shù)據(jù)傳輸 49 強(qiáng)口令策略測試 50 會話管理測試 52 身份信息維護(hù)方式測試 52 Cookie存儲方式測試 52 用戶注銷登陸的方式測試 53 注銷時會話信息是否清除測試 54 會話超時時間測試 55 會話定置測試 55 文件上傳下載測試 56 文件上傳測試 56.2 文件下載測試 57 信息泄漏測試 58 連接數(shù)據(jù)庫的賬號密碼加密測試 58 客戶端源代碼敏感信息測試 59 客戶端源代碼注釋測試 59 異常處理 60 不安全的存儲 62 邏輯測試 62 其他 63 Class文件反編譯測試 635 本規(guī)范所涉及的測試工具 63概述背景簡介為了規(guī)避安全風(fēng)險、規(guī)范代碼的安全開發(fā),以及如何系統(tǒng)的進(jìn)行安全性測試,目前缺少相應(yīng)的理論和方法支撐。為此,我們制定《安全測試規(guī)范》,本規(guī)范可讓測試人員針對常見安全漏洞或攻擊方式,系統(tǒng)的對被測系統(tǒng)進(jìn)行快速安全性測試。適用讀者本規(guī)范的讀者及使用對象主要為測試人員、開發(fā)人員等。適用范圍本規(guī)范主要針對基于通用服務(wù)器的Web應(yīng)用系統(tǒng)為例,其他系統(tǒng)也可以參考。如下圖例說明了一種典型的基于通用服務(wù)器的Web應(yīng)用系統(tǒng):Web應(yīng)用Web應(yīng)用應(yīng)用服務(wù)器TomcatJBoss……客戶端Web服務(wù)器ApacheIIS……數(shù)據(jù)庫服務(wù)器OracleSqlserver……本規(guī)范中的方法以攻擊性測試為主。除了覆蓋業(yè)界常見的Web安全測試方法以外,也借鑒了一些業(yè)界最佳安全實(shí)踐。安全測試在項(xiàng)目整體流程中所處的位置一般建議在集成測試前根據(jù)產(chǎn)品實(shí)現(xiàn)架構(gòu)及安全需求,完成安全性測試需求分析和測試設(shè)計(jì),準(zhǔn)備好安全測試用例。在集成版本正式轉(zhuǎn)測試后,即可進(jìn)行安全測試。如果產(chǎn)品質(zhì)量不穩(wěn)定,前期功能性問題較多,則可適當(dāng)推后安全測試執(zhí)行。安全測試在安全風(fēng)險評估的關(guān)系說明安全風(fēng)險是指威脅利用漏洞對目標(biāo)系統(tǒng)造成安全影響的可能性及嚴(yán)重程度。其中威脅是指可能對目標(biāo)系統(tǒng)造成損害的潛在原因,包括物理環(huán)境威脅、人為威脅等。漏洞也稱弱點(diǎn),是應(yīng)用系統(tǒng)本身存在的,包括系統(tǒng)實(shí)現(xiàn)中的缺陷、配置中的漏洞等。外部威脅利用系統(tǒng)的漏洞達(dá)到破壞系統(tǒng)安全運(yùn)行的目的。本規(guī)范所描述的安全測試僅是安全風(fēng)險評估中的一個活動,對應(yīng)于安全風(fēng)險評估過程中的漏洞識別部分,特別是技術(shù)性的漏洞識別。完整的安全風(fēng)險評估過程、概念見GB/T20984-2007《信息安全技術(shù)信息安全風(fēng)險評估規(guī)范》。注意事項(xiàng)安全測試的執(zhí)行,對于被測系統(tǒng),或多或少都會存在一些影響(比如性能、垃圾數(shù)據(jù)),只能在測試環(huán)境中進(jìn)行;不允許在正式環(huán)境運(yùn)行,避免系統(tǒng)存在漏洞導(dǎo)致丟失數(shù)據(jù)和數(shù)據(jù)庫損壞。本規(guī)范最主要目的是為了發(fā)現(xiàn)安全漏洞,至于發(fā)現(xiàn)一個漏洞以后更深一步的滲透測試在這里不會涉及。例如針對暴力破解測試,我們只給出驗(yàn)證存在暴力破解漏洞的可能,但不會提供暴力破解的方法。本文檔中所有提及的測試工具的使用,請遵循公司相關(guān)規(guī)定。如果是內(nèi)部試驗(yàn)環(huán)境進(jìn)行測試,可以考慮去除一些防護(hù)措施或設(shè)備(如防火墻),這樣能保證發(fā)現(xiàn)問題的全面性。本文檔根據(jù)最嚴(yán)格的方式對目標(biāo)進(jìn)行測試,如果項(xiàng)目系統(tǒng)對安全的要求不高且有自身的安全策略規(guī)定時,可以視情況對測試項(xiàng)進(jìn)行部分測試。例如密碼策略測試項(xiàng)中,測試人員可以根據(jù)測試目標(biāo)的密碼位數(shù)要求進(jìn)行測試,而不需要完全依照測試項(xiàng)里面規(guī)定的位數(shù)進(jìn)行測試。測試用例級別說明一個安全漏洞的風(fēng)險程度受危害程度和概率的影響,我們定義了如下所示的關(guān)系:危害程度發(fā)生概率高中低高高高中中高中低低中低低表1風(fēng)險等級界定表本測試規(guī)范用例根據(jù)上面的定義分為四個測試級別:測試用例級別說明一級基本:該類用例涉及可能導(dǎo)致風(fēng)險程度為高的安全漏洞,在任何情況下都必須進(jìn)行測試。二級重要:該類用例涉及可能導(dǎo)致風(fēng)險程度為中的安全漏洞,在條件允許(時間、人力充沛)情況下必須進(jìn)行測試。三級一般:該類用例涉及可能導(dǎo)致風(fēng)險程度為低的安全漏洞,測試結(jié)果可能對其他測試有幫助。測試與否根據(jù)業(yè)務(wù)系統(tǒng)的重要性來判斷。四級生僻:該類用例涉及可能導(dǎo)致風(fēng)險程度為極低的安全漏洞,攻擊者只能收集到很少且無關(guān)緊要的信息。一般情況下不建議進(jìn)行測試。表2測試用例級別說明表Web安全測試方法安全功能驗(yàn)證功能驗(yàn)證是采用軟件測試當(dāng)中的黑盒測試方法,對涉及安全的軟件功能,如:用戶管理模塊,權(quán)限管理模塊,加密系統(tǒng),認(rèn)證系統(tǒng)等進(jìn)行測試,主要驗(yàn)證上述功能是否有效,不存在安全漏洞,具體方法可使用黑盒測試方法。漏洞掃描漏洞掃描是指基于漏洞數(shù)據(jù)庫,通過掃描等手段對指定的遠(yuǎn)程或者本地計(jì)算機(jī)系統(tǒng)的安全脆弱性進(jìn)行檢測,發(fā)現(xiàn)可利用的漏洞的一種安全檢測(滲透攻擊)行為。漏洞掃描技術(shù)是一類重要的網(wǎng)絡(luò)安全技術(shù)。它和防火墻、入侵檢測系統(tǒng)互相配合,能夠有效提高網(wǎng)絡(luò)的安全性。通過對網(wǎng)絡(luò)的掃描,網(wǎng)絡(luò)管理員能了解網(wǎng)絡(luò)的安全設(shè)置和運(yùn)行的應(yīng)用服務(wù),及時發(fā)現(xiàn)安全漏洞,客觀評估網(wǎng)絡(luò)風(fēng)險等級。網(wǎng)絡(luò)管理員能根據(jù)掃描的結(jié)果更正網(wǎng)絡(luò)安全漏洞和系統(tǒng)中的錯誤設(shè)置,在黑客攻擊前進(jìn)行防范。如果說防火墻和網(wǎng)絡(luò)監(jiān)視系統(tǒng)是被動的防御手段,那么安全掃描就是一種主動的防范措施,能有效避免黑客攻擊行為,做到防患于未然。模擬攻擊實(shí)驗(yàn)?zāi)M攻擊測試是一組特殊的黑盒測試案例,以模擬攻擊來驗(yàn)證軟件或信息系統(tǒng)的安全防護(hù)能力,可使用冒充、重演、消息篡改、服務(wù)拒絕等方法來實(shí)現(xiàn)。偵聽技術(shù)在數(shù)據(jù)通信或數(shù)據(jù)交互過程,對數(shù)據(jù)進(jìn)行截取分析的過程。目前最為流行的是網(wǎng)絡(luò)數(shù)據(jù)包的捕獲技術(shù)。Appscan工具介紹Appscan掃描工具只能檢測到部分常見的漏洞(如跨站腳本、SQL注入等),不是針對用戶代碼的,也就是說不能理解業(yè)務(wù)邏輯,無法對這些漏洞做進(jìn)一步業(yè)務(wù)上的判斷。往往最嚴(yán)重的安全問題并不是常見的漏洞,而是通過這些漏洞針對業(yè)務(wù)邏輯和應(yīng)用的攻擊。Web目前分為“應(yīng)用”和“Web服務(wù)”兩部分。應(yīng)用指通常意義上的Web應(yīng)用,而Web服務(wù)是一種面向服務(wù)的架構(gòu)的技術(shù),通過標(biāo)準(zhǔn)的Web協(xié)議(如HTTP、XML、SOAP、WSDL)提供服務(wù)。AppScan工作原理AppScan工作原理:1、通過搜索(爬行)發(fā)現(xiàn)整個Web應(yīng)用結(jié)構(gòu)。2、根據(jù)分析,發(fā)送修改的HTTPRequest進(jìn)行攻擊嘗試(掃描規(guī)則庫)。3、通過對于Respond的分析驗(yàn)證是否存在安全漏洞。所以,AppScan的核心是提供一個掃描規(guī)則庫,然后利用自動化的“探索”技術(shù)得到眾多的頁面和頁面參數(shù),進(jìn)而對這些頁面和頁面參數(shù)進(jìn)行安全性測試。“掃描規(guī)則庫”,“探索”,“測試”就構(gòu)成了AppScan的核心三要素。 如上圖,單擊“掃描”下面的小三角,可以出現(xiàn)如下的三個選型“完全掃描”、“僅探索”、“僅測試”三個名詞,該三個類型為AppScan三個核心要素;AppScan是對網(wǎng)站等Web應(yīng)用進(jìn)行安全攻擊來檢查網(wǎng)站是否存在安全漏洞;對網(wǎng)站來說,一個網(wǎng)站存在的頁面,可能成千上萬。每個頁面也都可能存在多個字段(參數(shù)),比如一個登陸界面,至少要輸入用戶名和密碼,就是說一個頁面存在兩個字段,你提交了用戶名密碼等登陸信息,網(wǎng)站要有地方接受并且檢查是否正確,這就可能存在一個新的檢查頁面。這里的每個頁面的每個參數(shù)都可能存在安全漏洞,都是被攻擊對象,所以都需要檢查。這就存在一個問題,我們來負(fù)責(zé)來檢查一個網(wǎng)站的安全性,這個網(wǎng)站有多少個頁面,有多少個參數(shù),頁面之間如何跳轉(zhuǎn),我們可能并不明確,如何知道這些信息?訪問一個網(wǎng)站的時候,我們需要知道的最重要的信息是哪個?網(wǎng)站主頁地址?從網(wǎng)站地址開始,其他頁面都可以鏈接過去,那么可不可以有種技術(shù),告訴了它網(wǎng)站的入口地址,然后它“順藤摸瓜”,找出其他的網(wǎng)頁和頁面參數(shù)?所以這就是“爬蟲”技術(shù),具體說,是“網(wǎng)站爬蟲”,其利用了網(wǎng)頁的請求都是用http協(xié)議發(fā)送的,發(fā)送和返回的內(nèi)容都是統(tǒng)一的語言HTML,那么對HTML語言進(jìn)行分析,找到里面的參數(shù)和鏈接,紀(jì)錄并繼續(xù)發(fā)送,最終,找到了這個網(wǎng)站的眾多的頁面和目錄。這個AppScan就提供,這里的術(shù)語叫“探索”。在使用AppScan的時候,要配置的第一個就是要檢查的網(wǎng)站的地址,配置了以后,AppScan就會利用“探索”技術(shù)去發(fā)現(xiàn)這個網(wǎng)站存在多少個目錄,多少個頁面,頁面中有哪些參數(shù)等,簡單說,了解網(wǎng)站的結(jié)構(gòu)?!疤剿鳌绷私饬耍瑴y試的目標(biāo)和范圍就大致確定了,然后利用規(guī)則庫(AppScan的掃描規(guī)則庫,其類似殺毒軟件的病毒庫),發(fā)送各種發(fā)送請求,進(jìn)行安全攻擊,這個過程就是“測試”;具體可以檢查的安全攻擊類型都在里面做好了,我們?nèi)ナ褂眉纯?。完全測試就是把上面的兩個步驟整合起來,“探索”+“測試”;在安全測試過程中,可以先只進(jìn)行探索,不進(jìn)行測試,目的是了解被測的網(wǎng)站結(jié)構(gòu),評估范圍;然后選擇“僅測試”,只對前面探索過的頁面進(jìn)行測試,不對新發(fā)現(xiàn)的頁面進(jìn)行測試?!巴耆珳y試”就是把兩個步驟結(jié)合在一起,一邊探索,一邊測試。AppScan掃描階段Appscan全面掃描包括兩個步驟:探索和測試;探索階段:appscan會通過模仿成web用戶單擊鏈接并填寫表單字段來探索站點(diǎn)(web應(yīng)用程序或webserver)這就是探索階段。探索階段可以遍歷每個URL路徑,并分析后創(chuàng)建測試點(diǎn)。既工具會模仿一個用戶對被訪問的Web應(yīng)用或Web服務(wù)站點(diǎn)進(jìn)行探測訪問,通過發(fā)送請求對站點(diǎn)內(nèi)的鏈接與表單域進(jìn)行訪問或填寫,以獲取相應(yīng)的站點(diǎn)信息。Appscan分析器將會對自己發(fā)送的每一個請求后的響應(yīng)做出判斷,查找出任何可能潛在風(fēng)險的地方,并針對這些可能會隱含風(fēng)險的響應(yīng),確定將要自動生成的測試用例。但是在探測階段完成后,這些高危區(qū)域是否真的隱含著安全缺陷或應(yīng)做更好的改良,以及這些隱含的風(fēng)險是處于什么層度的,是需要在測試執(zhí)行完成后,才能最終得出決論。測試階段:“測試”期間,appscan會發(fā)送它在“探索”階段創(chuàng)建的成千上萬個定制的測試請求,通過你定制好的測試策略分析每個測試的響應(yīng),最后根據(jù)規(guī)則識別應(yīng)用程序中的安全問題,并排列這些安全問題的風(fēng)險級別。既Appscan是通過測試策略庫中對相應(yīng)安全隱患的檢測規(guī)則而生成對應(yīng)的足夠全面而且復(fù)雜的測試輸入(測試用例)。掃描階段:Appscan才是真正的工作起來,他將會把上個階段的測試用例產(chǎn)生的服務(wù)請求陸續(xù)的發(fā)送出去。然后再檢測分析服務(wù)的響應(yīng)結(jié)果,從而判斷該測試用例的輸入,是否造成了安全隱患或安全問題。然后再通過測試用例生成的策略,找出該安全問題的描述,以及該問題的解決方案,同時還報告相關(guān)參數(shù)的請求發(fā)送以及響應(yīng)結(jié)果。AppScan工具使用掃描如果是第一次啟動,屏幕中央將會出現(xiàn)一個“歡迎”對話框。在此對話中,可以點(diǎn)擊“入門”鏈接,查看IBMRationalAppScan的“新手入門幫助文檔”,如下圖:點(diǎn)擊“創(chuàng)建新的掃描”,就可以開始掃描任務(wù),選擇“常規(guī)掃描”為例,如下圖:選擇掃描類型為:Web應(yīng)用程序掃描,如下圖:輸入起始URL,如下圖:點(diǎn)擊“記錄”,如下圖:選擇“測試策略”為缺省值,如下圖:選擇啟動方式為“啟動全面自動掃描”,如下圖:選擇自動保存,點(diǎn)擊“是”,如下圖:錄入該網(wǎng)站的用戶名和賬號,登錄系統(tǒng)后,點(diǎn)擊“暫?!卑粹o,如下圖:然后,點(diǎn)擊“掃描”按鈕下的“繼續(xù)完全掃描”,等待掃描完成,如下圖:掃描完成后,顯示結(jié)果,如下圖:工具具體分布圖,如下圖:生成報告在工具欄上,單擊“報告”,然后選擇“安全報告”。選擇模板:管理綜合報告、詳細(xì)報告、修復(fù)任務(wù)、開發(fā)者、QA、站點(diǎn)目錄。注:可以通過你所需要的內(nèi)容,在右側(cè)樹中選擇你報告所有體現(xiàn)的內(nèi)容從最低嚴(yán)重性列表中,選擇要包含在報告中的問題最低嚴(yán)重性級別。點(diǎn)擊保存報告,自動生成報告;報告提供PDA或WORD格式的保存。測試用例和規(guī)范標(biāo)準(zhǔn)測試用例和規(guī)范標(biāo)準(zhǔn)可分為主動模式和被動模式兩種。在被動模式中,測試人員盡可能的了解應(yīng)用邏輯:比如用工具分析所有的HTTP請求及響應(yīng),以便測試人員掌握應(yīng)用程序所有的接入點(diǎn)(包括HTTP頭,參數(shù),cookies等);在主動模式中,測試人員試圖以黑客的身份來對應(yīng)用及其系統(tǒng)、后臺等進(jìn)行滲透測試,其可能造成的影響主要是數(shù)據(jù)破壞、拒絕服務(wù)等。一般測試人員需要先熟悉目標(biāo)系統(tǒng),即被動模式下的測試,然后再開展進(jìn)一步的分析,即主動模式下的測試。主動測試會與被測目標(biāo)進(jìn)行直接的數(shù)據(jù)交互,而被動測試不需要,參考以下示意圖:造成的影響造成的影響主動模式被動模式初始化完成Web結(jié)構(gòu)獲取權(quán)限測試歸檔測試參數(shù)分析異常處理注入測試命令執(zhí)行文件包含跨站腳本信息竊取備份文件后臺查找目錄列表會話管理信息泄漏數(shù)據(jù)破壞拒絕服務(wù)信息獲取熟悉業(yè)務(wù)邏輯接口測試認(rèn)證測試暴力破解認(rèn)證繞過邏輯處理越權(quán)操作身份仿冒日志檢查拒絕服務(wù)上傳下載輸入數(shù)據(jù)測試SQL注入測試SQL注入是針對一種數(shù)據(jù)庫而言的,而不是針對網(wǎng)頁語言。在任何使用了數(shù)據(jù)庫查詢環(huán)境下都可能存在。常見的數(shù)據(jù)庫包括:MSSQL、Oracle、Informix、Db2、Access、Sybase等。所謂SQL注入,就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達(dá)到欺騙服務(wù)器執(zhí)行惡意的SQL命令。SQL注入受到的威脅,(但不限于)以下幾種情況:數(shù)據(jù)泄漏修改現(xiàn)有數(shù)據(jù)插入新數(shù)據(jù)任意的文件系統(tǒng)訪問任意的網(wǎng)絡(luò)訪問系統(tǒng)泄漏針對不同的數(shù)據(jù)庫系統(tǒng)使用的一些函數(shù)會有所不同,不過從測試是否存在SQL注入的角度考慮,只需要進(jìn)行幾個最基本的判斷語句就可以了。編號Web_01測試用例名稱手工SQL注入測試測試目的由于SQL注入有可能造成信息泄漏,在嚴(yán)重情況下(根據(jù)使用的數(shù)據(jù)庫而定)甚至可能造成數(shù)據(jù)修改、刪除,從而導(dǎo)致業(yè)務(wù)中斷。因此必須發(fā)現(xiàn)所有存在的注入點(diǎn)。用例級別一級測試條件Web業(yè)務(wù)運(yùn)行正常待測目標(biāo)存在參數(shù)輸入,假設(shè)為name=value執(zhí)行步驟觀察參數(shù)的值value是否為數(shù)字型。如果是數(shù)字型進(jìn)行數(shù)字型測試,否則跳到第4步進(jìn)行字符型測試(例如如果出現(xiàn)a那說明是字符型,如果出現(xiàn)2則將其當(dāng)做數(shù)字型測試)將被測參數(shù)后加上測試語句“and1=1”,即:地址欄中填入“and1=1”,如果返回正確頁面則進(jìn)行下一步操作,否則跳到第4步。將被測參數(shù)后加上測試語句“and1=2”(這里以第n個參數(shù)為例),其他參數(shù)保持不變,即:地址欄中填入“and1=2”,如果返回正確頁面則進(jìn)行下一步操作,否則該參數(shù)存在注入漏洞,完成測試將被測參數(shù)后加上測試語句“’and‘1’=’1”,即:地址欄中填入“/page.xxx?name=value’and‘1’=’1”,如果返回正確頁面則進(jìn)行下一步操作,否則該參數(shù)存在注入漏洞,完成測試將被測參數(shù)后加上測試語句“’and‘1’=’2”,即:地址欄中填入“/page.xxx?name=value’and‘1’=’2”,如果返回正確頁面則不存在漏洞,否則該參數(shù)存在注入漏洞,完成測試預(yù)期結(jié)果不存在注入點(diǎn)備注頁面可能接受多個參數(shù),需對每個參數(shù)都進(jìn)行測試如果客戶端腳本對輸入數(shù)據(jù)進(jìn)行合法行校驗(yàn),阻止非法數(shù)據(jù),可以通過方法(通過WebScarab攔截并修改參數(shù)值),繞過客戶端數(shù)據(jù)校驗(yàn)。POST、AJAX以及隱藏域提交參數(shù)也需要測試(方法是通過WebScarab攔截HTTP請求,找到提交的參數(shù)并參照上面的方法修改參數(shù)值)本測試包含了現(xiàn)有最常見的兩種測試方法測試結(jié)果編號Web_02測試用例名稱自動化工具SQL注入測試測試目的由于SQL注入有可能造成信息泄漏,在嚴(yán)重情況下(根據(jù)使用的數(shù)據(jù)庫而定)甚至可能造成數(shù)據(jù)修改、刪除,從而導(dǎo)致業(yè)務(wù)中斷。因此必須發(fā)現(xiàn)所有存在的注入點(diǎn)。用例級別一級測試條件Web業(yè)務(wù)運(yùn)行正常待測目標(biāo)存在參數(shù)輸入,假設(shè)為name=value測試用機(jī)安裝了pangolin測試工具執(zhí)行步驟運(yùn)行pangolin點(diǎn)擊Check按鈕執(zhí)行掃描操作觀察結(jié)果預(yù)期結(jié)果Pangolin工具不能得到目標(biāo)服務(wù)器的注入類型和數(shù)據(jù)庫類型。備注頁面可能接受多個參數(shù),需對每個參數(shù)都進(jìn)行測試測試結(jié)果SQL注入實(shí)例解析例1:網(wǎng)站地址,(用戶名:jsmith ,密碼:Demo1234)使用下面的代碼,登陸系統(tǒng)的管理員用戶Username=’or1=1--andpassword=’demo1234’例2:公司某系統(tǒng)的掃描結(jié)果如下:下圖為掃描工具判斷,我們系統(tǒng)存在發(fā)出去的請求響應(yīng)包含了SQLServer錯誤,表明測試所插入的危險字符滲透了應(yīng)用程序并到達(dá)SQL查詢本身;如上圖,根據(jù)對應(yīng)的路徑,我們找到對應(yīng)的文件,如下圖:當(dāng)前工具判斷“l(fā)mbh”這個參數(shù)有存在SQL注入的風(fēng)險,存在了5種變體那么,我們可以選擇其中一個變體,在瀏覽器上打開對應(yīng)的頁面,如下圖:3:8010/plat/pages/platform/newmh/content/workfolwLmdynamic.jsp?lmbh=b844791e-ad96-4c45-a65b-4d76e857b811%a5'%20having%201=1--所以,在掃描工具中,會判斷可能會導(dǎo)致SQL注入的可能原因,開發(fā)人員可以通過工具的提示信息,進(jìn)行修改;命令執(zhí)行測試編號Web_03測試用例名稱命令執(zhí)行測試測試目的某些頁面可能接受類似于文件名的參數(shù)用于下載或者顯示內(nèi)容。用例級別1測試條件Web業(yè)務(wù)運(yùn)行正常已知某頁面URL(假設(shè)為/abc.jsp)接收參數(shù),且參數(shù)中接收類似于系統(tǒng)命令的字符(假設(shè)為cmd=ls)執(zhí)行步驟更改參數(shù)的值為其他命令,可以嘗試以下一些字符串:

netuser

ipconfig

cat/etc/passwd觀察頁面返回信息。比如使用netuser命令的話,頁面中可能包含類似于如下的字符串:

\\host的用戶帳戶

Administrator預(yù)期結(jié)果頁面的源代碼中不包含類似于系統(tǒng)命令的返回信息。備注參考資料跨站腳本攻擊測試“跨站點(diǎn)腳本編制”攻擊是一種隱私違例,可讓攻擊者獲取合法用戶的憑證,并在與特定Web站點(diǎn)交互時假冒這位用戶??缯军c(diǎn)腳本編制受到的威脅,(但不限于)以下幾種情況:當(dāng)用戶查看基于攻擊者提供的內(nèi)容而動態(tài)生成的頁面時,他們會不知不覺地執(zhí)行惡意腳本;在用戶的會話cookie失效之前,攻擊者就能接管用戶會話;攻擊者可以將用戶連接到攻擊者選擇的惡意服務(wù)器上;攻擊者誘導(dǎo)用戶訪問由攻擊者提供的URL,從而導(dǎo)致在用戶的瀏覽器中執(zhí)行攻擊者選擇的腳本或HTML。通過使用這種技術(shù),攻擊者可以使用訪問過此URL的用戶的特權(quán)來采取行動,諸如對底層SQL數(shù)據(jù)庫發(fā)出查詢并查看其結(jié)果。在上圖中,惡意攻擊者(這里使用E表示)通過E-mail或HTTP將某銀行的網(wǎng)址鏈接發(fā)給用戶(銀行用表示),該鏈接中附加了惡意的腳本(上圖步驟一);用戶訪問發(fā)來的鏈接,進(jìn)入銀行網(wǎng)站,同時,嵌在鏈接中的腳本被用戶的瀏覽器執(zhí)行(上圖步驟二、三);用戶在銀行網(wǎng)站的所有操作,包括用戶的cookie和session信息,都被腳本收集到,并且在用戶毫不知情的情況下發(fā)送給惡意攻擊者(上圖步驟四);惡意攻擊者使用偷來的session信息,偽裝成該用戶,進(jìn)入銀行網(wǎng)站,進(jìn)行非法活動(上圖步驟五)。因此,只要Web應(yīng)用中,有可被惡意攻擊者利用執(zhí)行腳本的地方,都存在極大的安全隱患。黑客們?nèi)绻梢宰層脩魣?zhí)行他們提供的腳本,就可以從用戶正在瀏覽的域中偷到他的個人信息、可以完全修改用戶看到的頁面內(nèi)容、跟蹤用戶在瀏覽器中的每一個動作,甚至利用用戶瀏覽器的缺陷完全控制用戶的機(jī)器。GET方式跨站腳本測試編號Web_XSS_01測試用例名稱GET方式跨站腳本測試測試目的由于跨站腳本會導(dǎo)致會話被劫持、敏感信息泄漏、賬戶被盜,嚴(yán)重時甚至造成數(shù)據(jù)修改、刪除,從而導(dǎo)致業(yè)務(wù)中斷,因此需檢測跨站腳本是否存在用例級別一級測試條件Web業(yè)務(wù)運(yùn)行正常待測目標(biāo)存在參數(shù)輸入,假設(shè)為name=value在某種情況下,用戶輸入被重新顯示在網(wǎng)頁上,包括名字、帳號、檢索結(jié)果等等(說明目標(biāo)網(wǎng)站服務(wù)器并沒有對用戶提交數(shù)據(jù)檢測)執(zhí)行步驟在輸入的參數(shù)后逐條添加以下語句,以第一條為例,輸入?name=<script>alert(123456)</script>只要其中一條彈出顯示123456的告警框,就說明存在跨站漏洞,記錄漏洞,停止測試。如果沒有彈出顯示123456的告警框,則在返回的頁面上單擊鼠標(biāo)右鍵,選擇“查看源文件”查找網(wǎng)頁源文件中是否包含完整的字符串<script>alert(123456)</script>,則不管有沒有彈出顯示123456的告警框,都表明存在跨站腳本漏洞。由于有些HTML元素(比如<textarea>或”)會影響腳本的執(zhí)行,所以不一定能夠正確彈出123456告警框,需要根據(jù)返回網(wǎng)頁源文件的內(nèi)容,構(gòu)造value的值,比如多行文本輸入框:</textarea><script>alert(123456)</script>文本輸入框:</td><script>alert(123456)</script>'><script>alert(123456)</script>

"><script>alert(123456)</script>

</title><script>alert(123456)</script>

--><script>alert(123456)</script>

[img]javascript:alert(123456)[/img]

<scrip<script>t>alert(123456)</scrip</script>t>

</div><Script>alert(123456)</script>預(yù)期結(jié)果不存在跨站腳本漏洞備注需要對頁面上所有可以提交參數(shù)的地方進(jìn)行測試。具體跨站腳本的測試語句根據(jù)實(shí)際情況的不同而不同,這里列出了一些最常見構(gòu)造語句。AppScan可以找出掃描到的頁面的絕大部分跨站腳本漏洞,但對沒有掃描到的網(wǎng)頁就無能為力了。測試結(jié)果POST方式跨站腳本測試編號Web_XSS_02測試用例名稱POST方式跨站腳本測試測試目的由于跨站腳本會導(dǎo)致會話被劫持、敏感信息泄漏、賬戶被盜,嚴(yán)重時甚至造成數(shù)據(jù)修改、刪除,從而導(dǎo)致業(yè)務(wù)中斷,因此需檢測跨站腳本是否存在用例級別一級測試條件Web業(yè)務(wù)運(yùn)行正常待測目標(biāo)以POST方式提交參數(shù),顯示為表單方式在某種情況下,用戶輸入被重新顯示在網(wǎng)頁上,包括名字、帳號、檢索結(jié)果等等(說明目標(biāo)網(wǎng)站服務(wù)器并沒有對用戶提交數(shù)據(jù)檢測)執(zhí)行步驟在POST表單中逐條輸入以下語句,只要其中一條彈出顯示123456的對話框,就說明存在跨站漏洞,記錄漏洞,停止測試。

<script>alert(123456)</script>

[img]javascript:alert(123456);[/img]如果沒有彈出顯示123456的告警框,則在返回的頁面上單擊鼠標(biāo)右鍵,選擇“查看源文件”查找網(wǎng)頁源文件中是否包含完整的字符串<script>alert(123456)</script>,則不管有沒有彈出顯示123456的告警框,都表明存在跨站腳本漏洞。由于有些HTML元素(比如<textarea>或”)會影響腳本的執(zhí)行,所以不一定能夠正確彈出123456告警框,需要根據(jù)返回網(wǎng)頁源文件的內(nèi)容,構(gòu)造value的值,比如</textarea><script>alert(123456)</script>'><script>alert(123456)</script>

"><script>alert(123456)</script>

</title><script>alert(123456)</script>

--><script>alert(123456)</script>

[img]javascript:alert(123456)[/img]

<scrip<script>t>alert(123456)</scrip</script>t>

</div><Script>alert(123456)</script>預(yù)期結(jié)果不會彈出顯示123456的對話框。備注需要對頁面上所有可以提交參數(shù)的地方進(jìn)行測試。測試結(jié)果跨站腳本工具實(shí)例解析例:公司某系統(tǒng)的掃描結(jié)果如下(獲取cookie信息):下圖為掃描工具判斷,我們系統(tǒng)開發(fā)代碼中可能出現(xiàn)下面的代碼語句(具體可以打開對應(yīng)的文件查看),這種代碼可能會讓黑客進(jìn)行跨站點(diǎn)攻擊;如上圖,/plat/”><script>alert(51446)</script>為修改后的代碼內(nèi)容,如果在瀏覽器上展示,如下圖:這樣黑客也可以修改為:/plat/”><script>alert(document.cookie)</script>,來獲取我們系統(tǒng)中的cookie信息,如下圖:從上圖彈出的cookie信息中,黑客可以通過獲取sessionID模擬合法用戶(如果需要彈出該提示,需要修改IE瀏覽器的設(shè)置,關(guān)閉IE“internet選項(xiàng)-安全-腳本-自定義級別-腳本-禁用XSS篩選器”)。所以,在掃描工具中,會判斷可能會導(dǎo)致跨站點(diǎn)腳本工具的可能原因,開發(fā)人員可以通過工具的提示信息,進(jìn)行修改;權(quán)限管理測試橫向測試編號Web_01測試用例名稱基于用戶身份處理的橫向越權(quán)操作測試測試目的發(fā)現(xiàn)頁面中存在的橫向越權(quán)操作。用例級別一級L測試條件Web業(yè)務(wù)運(yùn)行正常Web業(yè)務(wù)存在身份級別控制已知某頁面(假設(shè)為/abc.jsp).提交的參數(shù)中存在著代表用戶(假設(shè)為userA)身份的標(biāo)志(假設(shè)為operator)與userA同級別權(quán)限的用戶userB測試用機(jī)安裝了WebScarab軟件執(zhí)行步驟運(yùn)行WebScarab點(diǎn)擊Proxy標(biāo)簽頁->ManualEdit標(biāo)簽頁選中Interceptrequests打開瀏覽器,在代理地址中配置host為,port為8008使用userA的身份登陸到Web應(yīng)用進(jìn)入/abc.jsp頁面,提交數(shù)據(jù)在彈出的對話框中的URLEncoded頁面中,更改operator參數(shù)的值為userB,再點(diǎn)擊AcceptChanges按鈕提交觀察服務(wù)器處理預(yù)期結(jié)果服務(wù)器返回操作失敗或者以userA的用戶身份操作。備注如果參數(shù)是基于GET方式的URL傳遞,則不需要通過WebScarab工具,直接在URL中進(jìn)行修改提交即可。參考資料縱向測試橫向測試的兩個用例在本測試類別中同樣使用,只需要對用戶身份進(jìn)行測試時使用上下級權(quán)限即可。在下面的測試中,我們更偏向于使用白盒測試。這樣對于測試人員來說節(jié)約了非常多的時間。而且也能夠全面覆蓋所有的頁面。編號Web_03測試用例名稱基于菜單URL的測試測試目的發(fā)現(xiàn)應(yīng)用中存在的URL縱向越權(quán)操作。用例級別一級測試條件Web業(yè)務(wù)運(yùn)行正常Web業(yè)務(wù)存在身份級別控制擁有超級管理員及普通用戶的帳號和密碼執(zhí)行步驟以超級管理員身份登陸Web網(wǎng)站單擊鼠標(biāo)右鍵,選擇“查看源文件”在網(wǎng)頁“源文件”中查找重要的管理菜單(比如用戶管理)的URL鏈接,并拷貝URL鏈接地址退出登陸以普通用戶身份登陸Web網(wǎng)站在瀏覽器地址欄中輸入“用戶管理”的URL地址(如usermanage.do),然后回車觀察普通用戶是否能夠順利進(jìn)入“用戶管理”頁面,并進(jìn)行用戶管理操作。預(yù)期結(jié)果普通用戶不能夠通過直接URL訪問、使用未授權(quán)的功能。備注測試結(jié)果編號Web_04測試用例名稱基于爬行的測試測試目的發(fā)現(xiàn)頁面中存在的縱向越權(quán)操作。用例級別一級測試條件Web業(yè)務(wù)運(yùn)行正常Web業(yè)務(wù)存在身份級別控制測試用機(jī)上安裝了AppScan執(zhí)行步驟雙擊運(yùn)行AppScan,選擇file—new新建掃描,選擇掃描模板default彈出掃描配置對話框,選擇掃描類型,默認(rèn)為WebApplicationScan,點(diǎn)擊next在StartingURL中填入需掃描的目標(biāo)服務(wù)器域名或IP地址,其他配置不需修改,點(diǎn)擊next選擇默認(rèn)的RecordedLogin(recommendedmethod),點(diǎn)擊New在彈出的頁面中用權(quán)限較高的用戶身份登錄,如:admin等關(guān)閉頁面,彈出如下對話框,點(diǎn)擊OK

不需修改任何參數(shù),點(diǎn)擊next不需修改參數(shù),選擇Startafullautomaticscan,點(diǎn)擊finish完成配置,開始掃描重新開始掃描,重復(fù)步驟1、2、3在選擇用戶身份(即:第4步)時,選擇NoLogin,點(diǎn)擊next在彈出的配置對話框中(即:第7步的對話框)選擇AdvancedTestSettings,彈出下面對話框,點(diǎn)擊Configure選項(xiàng)在PrivilegeEscalation中,點(diǎn)擊Add添加已經(jīng)掃描出的結(jié)果;點(diǎn)擊打開導(dǎo)入掃描結(jié)果;并用一個名稱標(biāo)記它,如:admin,點(diǎn)擊ok然后點(diǎn)擊ok返回掃描配置對話框,如第7步的圖示,點(diǎn)擊next到第8步所示對話框中,不需修改參數(shù),點(diǎn)擊finish開始做越權(quán)掃描掃描完成,保存結(jié)果分析掃描結(jié)果預(yù)期結(jié)果掃描結(jié)果中不會提示存在漏洞。備注參考資料服務(wù)器信息收集運(yùn)行賬號權(quán)限測試編號Web_01測試用例名稱運(yùn)行帳號權(quán)限測試測試目的運(yùn)行Web服務(wù)器的操作系統(tǒng)帳號權(quán)限越高,那么Web遭到攻擊產(chǎn)生的危害就越大。因此,不應(yīng)使用“root”、“administrator”、等特權(quán)帳號或高級別權(quán)限的操作系統(tǒng)帳號來運(yùn)行Web,應(yīng)該盡可能地使用低級別權(quán)限的操作系統(tǒng)帳號。用例級別一級測試條件已知Web網(wǎng)站IP地址和登陸帳號、密碼執(zhí)行步驟登陸Web服務(wù)器操作系統(tǒng)查看運(yùn)行Web服務(wù)器的操作系統(tǒng)帳號,不是“root”、“administrator”等特權(quán)帳號或高級別權(quán)限帳號,如果是則存在漏洞。window:打開任務(wù)管理器,選擇“進(jìn)程”頁,勾選左下方的“顯示所有用戶的進(jìn)程”,檢查運(yùn)行Web服務(wù)器的帳號;預(yù)期結(jié)果沒有使用“root”、“administrator”等特權(quán)操作系統(tǒng)帳號運(yùn)行Web。備注測試結(jié)果Web服務(wù)器端口掃描編號Web_02測試用例名稱Web服務(wù)器端口掃描測試目的有時Web應(yīng)用服務(wù)器除業(yè)務(wù)端口外還會開放一些默認(rèn)端口,這些默認(rèn)端口對最終用戶是不需要開放的,而且也不會用于維護(hù),容易被攻擊,本測試目的在于發(fā)現(xiàn)服務(wù)器上未使用的Web端口。用例級別一級測試條件已知Web服務(wù)器域名測試用機(jī)安裝了nmap,假設(shè)路徑為d:\nmap執(zhí)行步驟運(yùn)行如下命令:Nmap–sP,來判斷目標(biāo)主機(jī)WindowsServerA是否可連通使用常規(guī)掃描方式對目標(biāo)主機(jī)進(jìn)行TCP端口掃描,運(yùn)行如下命令:Nmap–sT觀察結(jié)果,看是否為必須開放的Web服務(wù)端口。預(yù)期結(jié)果系統(tǒng)未開放業(yè)務(wù)不需要使用的端口。備注各種參數(shù)掃描請參考《利用nmap進(jìn)行端口掃描》測試結(jié)果文件、目錄測試工具方式的敏感接口遍歷編號Web_01測試用例名稱工具方式的敏感接口遍歷測試目的網(wǎng)站目錄查找是進(jìn)行攻擊的必備知識,只有知道了目錄信息才能確定攻擊的目標(biāo),進(jìn)行目錄查找是測試的首要階段,一般掃描工具進(jìn)行掃描前首先要進(jìn)行目錄查找。其次對于某些隱藏的管理接口(目錄或文件),雖然沒有對外有明顯的鏈接,但是通過一系列有特定含義的枚舉是可以訪問的。用例級別二級測試條件Web業(yè)務(wù)運(yùn)行正常已知目標(biāo)網(wǎng)站的域名或IP地址測試用機(jī)上需安裝JRE測試用機(jī)上有DirBuster軟件執(zhí)行步驟在host欄中填入目標(biāo)IP地址或域名,在Port欄中輸入服務(wù)器對應(yīng)的端口;如果服務(wù)器只接受HTTPS請求,則需要選擇Protocol為HTTPS將Fileextension中填入正確的文件后綴,默認(rèn)為php,如果為jsp頁面,需要填入jsp其他選項(xiàng)不變,點(diǎn)擊右下角的start,啟動目錄查找觀察返回結(jié)果,可點(diǎn)擊右下角的report,生成目錄報告預(yù)期結(jié)果經(jīng)過分析以后的結(jié)果中,業(yè)務(wù)系統(tǒng)不存在不需要對外開放的敏感接口,或者該接口進(jìn)行了完善的權(quán)限控制。備注舉一個測試不通過的例子:TypeFoundResponseFile200測試結(jié)果目錄列表測試編號SEC_Web_DIR_04測試用例名稱目錄列表測試測試目的目錄列表能夠造成信息泄漏,而且對于攻擊者而言是非常容易進(jìn)行的。所以在測試過程中,我們應(yīng)當(dāng)找出所有的目錄列表漏洞。用例級別1測試條件Web業(yè)務(wù)運(yùn)行正常已知目標(biāo)網(wǎng)站的域名或IP地址測試用機(jī)上需安裝JRE測試用機(jī)上有DirBuster軟件執(zhí)行步驟雙擊運(yùn)行在host欄中填入目標(biāo)IP地址或域名,在Port欄中輸入服務(wù)器對應(yīng)的端口;如果服務(wù)器只接受HTTPS請求,則需要選擇Protocol為HTTPS在filewithlistofdirs/files欄后點(diǎn)擊browse,選擇破解的字典庫為directory-list-2.3-small.txt:去除BurteForceFiles選項(xiàng)其他選項(xiàng)不變,點(diǎn)擊右下角的start,啟動目錄查找依次右擊Response值為200的行,在出現(xiàn)的菜單中點(diǎn)擊OpenInBrowser分析結(jié)果預(yù)期結(jié)果所有對目錄的訪問均不能打印出文件列表。備注測試結(jié)果文件歸檔測試編號Web_05測試用例名稱文件歸檔測試測試目的在網(wǎng)站管理員的維護(hù)過程中,很多情況下會對程序或者頁面進(jìn)行備份(可能是有意的或者是無意的,如ultraedit在修改后會生成文件名加bak后綴的文件)。攻擊者通過直接訪問這些備份的路徑可以下載文件用例級別1測試條件擁有運(yùn)行Web服務(wù)器的操作系統(tǒng)帳號和口令Web業(yè)務(wù)運(yùn)行正常執(zhí)行步驟登陸后臺Web服務(wù)器的操作系統(tǒng)以cd命令進(jìn)入可以通過Web方式訪問的目錄(比如tomcat服務(wù)器的$home/webapps目錄,jboss服務(wù)器的$home/jboss/server/default/deploy目錄)用find命令,查找是否存在以下備份文件,如果存在則測試不通過。"*.bak""*.BAK""*.old""*.OLD""*.zip""*.ZIP""*.rar""*.tar""*.temp""*.save""*.backup"預(yù)期結(jié)果可以通過Web方式訪問的目錄,不存在開發(fā)過程(包括現(xiàn)場定制)中的產(chǎn)生的臨時文件、備份文件等。備注測試結(jié)果認(rèn)證測試驗(yàn)證碼測試編號Web_01測試用例名稱驗(yàn)證碼測試測試目的查看是否有驗(yàn)證碼機(jī)制,以及驗(yàn)證碼機(jī)制是否完善用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)運(yùn)行正常存在登陸頁面執(zhí)行步驟登陸頁面是否存在驗(yàn)證碼,不存在說明存在漏洞,完成測試驗(yàn)證碼和用戶名、密碼是否一次性、同時提交給服務(wù)器驗(yàn)證,如果是分開提交、分開驗(yàn)證,則存在漏洞在服務(wù)器端,是否只有在驗(yàn)證碼檢驗(yàn)通過后才進(jìn)行用戶名和密碼的檢驗(yàn),如果不是說明存在漏洞。(檢測方法:輸入錯誤的用戶名或密碼、錯誤的驗(yàn)證碼。觀察返回信息,是否只提示驗(yàn)證碼錯誤,也就是說當(dāng)驗(yàn)證碼錯誤時,禁止再判斷用戶名和密碼。)驗(yàn)證碼是否為圖片形式且在一張圖片中,不為圖片形式或不在一張圖片中,說明存在漏洞,完成測試生成的驗(yàn)證碼是否可以通過html源代碼查看到,如果可以說明存在漏洞,完成測試生成驗(yàn)證碼的模塊是否根據(jù)提供的參數(shù)生成驗(yàn)證碼,如果是說明存在漏洞,完成測試請求10次觀察驗(yàn)證碼是否隨機(jī)生成,如果存在一定的規(guī)律(例如5次后出現(xiàn)同一驗(yàn)證碼)說明存在漏洞,完成測試觀察驗(yàn)證碼圖片中背景是否存在無規(guī)律的點(diǎn)或線條,如果背景為純色(例如只有白色)說明存在漏洞,完成測試驗(yàn)證碼在認(rèn)證一次后是否立即失效:預(yù)期結(jié)果不存在上述漏洞備注本用例根據(jù)最嚴(yán)格的方式對目標(biāo)進(jìn)行測試,如果產(chǎn)品線對安全的要求不高且有自身的安全策略規(guī)定時,可以視情況對測試項(xiàng)進(jìn)行部分測試測試結(jié)果認(rèn)證錯誤提示編號Web_02測試用例名稱認(rèn)證錯誤提示測試目的為了進(jìn)行暴力破解,攻擊者需要知道已存在的用戶名,再對該用戶名進(jìn)行攻擊。所以,本測試用于確認(rèn)目標(biāo)服務(wù)器在處理登陸操作時會提示出具體的信息。用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)運(yùn)行正常存在登陸頁面執(zhí)行步驟在用戶名(或其他身份標(biāo)志)的輸入框中輸入test,口令任意若服務(wù)器返回提示類似于“用戶名不存在”,則說明存在漏洞,完成測試使用正確的用戶名(或同功能的身份標(biāo)志),在口令框中輸入test若服務(wù)器提示類似于“密碼/口令錯誤”“用戶名不存在”之類的信息,則說明存在漏洞,完成測試。預(yù)期結(jié)果服務(wù)器不會針對認(rèn)證錯誤的情況提示準(zhǔn)確的信息。備注測試結(jié)果鎖定策略測試編號Web_03測試用例名稱鎖定策略測試測試目的在缺少鎖定策略和驗(yàn)證碼設(shè)計(jì)有問題的情況下,攻擊者可以通過枚舉的方式來進(jìn)行暴力猜解。本測試用于發(fā)現(xiàn)目標(biāo)系統(tǒng)是否缺少鎖定策略。用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)運(yùn)行正常存在登陸頁面執(zhí)行步驟打開登陸頁面在用戶名(或同功能的身份標(biāo)志)輸入框中輸入正確的用戶名在口令(或同功能的口令標(biāo)志)輸入框中輸入錯誤的口令在驗(yàn)證碼輸入框(如果有的話)中輸入正確的驗(yàn)證碼提交表單重復(fù)1~5步驟10次判斷目標(biāo)系統(tǒng)返回的信息預(yù)期結(jié)果目標(biāo)系統(tǒng)提示“帳號已鎖定”或者“IP已鎖定”或者類似“鎖定”等之類的信息。備注第6步中重復(fù)步驟次數(shù)視各產(chǎn)品實(shí)際情況而定。另外,如果系統(tǒng)存在一些認(rèn)證接口(帶認(rèn)證參數(shù)的URL,不是普通登陸頁面),那么也需要對認(rèn)證接口進(jìn)行失敗認(rèn)證嘗試,以測試其鎖定策略。測試結(jié)果認(rèn)證繞過測試編號Web_04測試用例名稱認(rèn)證繞過測試測試目的發(fā)現(xiàn)目標(biāo)認(rèn)證系統(tǒng)是否存在繞過的可能用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)運(yùn)行正常存在登陸頁面執(zhí)行步驟打開登陸頁面在用戶名(或同功能的身份標(biāo)志)輸入框中輸入admin’or‘1’=’1在口令(或同功能的口令標(biāo)志)輸入框中輸入admin’or‘1’=’1提交表單,觀察返回結(jié)果預(yù)期結(jié)果不能夠成功登陸。備注如果目標(biāo)系統(tǒng)采用javascript限制了輸入格式,可以通過WebScarab來進(jìn)行修改。關(guān)于WebScarab的使用說明,請參看相關(guān)幫助文檔。測試結(jié)果修復(fù)密碼測試編號Web_05測試用例名稱修改密碼測試測試目的如果修改密碼功能存在著缺陷,攻擊者可以通過此其缺陷修改其他用戶的密碼。用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)正常運(yùn)行網(wǎng)站提供修改密碼的功能已知某正確的用戶賬號執(zhí)行步驟登陸網(wǎng)站進(jìn)入密碼修改頁面查看是否必須提交正確舊密碼,如果不需要則存在漏洞填寫并提交修改密碼數(shù)據(jù),并以WebScarab攔截修改密碼請求,觀察新舊密碼是否通過同一個HTTP請求提交到服務(wù)器,如果不是則存在漏洞;觀察是否客戶端是否提交用戶名或用戶ID,如果是則修改為其他用戶名或用戶ID,看看是否能夠成功修改其他用戶的密碼,如果可以則存在漏洞。預(yù)期結(jié)果用戶修改密碼時必須提供舊密碼,普通用戶無法修改其他用戶的密碼。備注如果初始口令為系統(tǒng)提供的默認(rèn)口令、或者是由管理員設(shè)定時,則在用戶/操作員使用初始口令成功登錄后,系統(tǒng)必須強(qiáng)制用戶/操作員更改初始口令,直至更改成功,否則是漏洞。測試結(jié)果不安全的數(shù)據(jù)傳輸編號Web_06-01測試用例名稱登陸過程信息機(jī)密性保護(hù)測試目的測試Web程序在處理登錄過程中用戶名和口令的傳輸是否采用了加密傳輸?shù)臋C(jī)制。用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)正常運(yùn)行Web業(yè)務(wù)存在登陸認(rèn)證模塊執(zhí)行步驟開啟WebScarab,配置對GET和POST請求進(jìn)行攔截;在瀏覽器中配置代理服務(wù)器IP為,端口為8008在登錄處輸入用戶名和口令、驗(yàn)證碼登陸查看WebScarab攔截的請求中,用戶名和口令是否采用HTTPS協(xié)議傳輸。預(yù)期結(jié)果用戶名和密碼信息采用HTTPS傳輸。備注測試結(jié)果強(qiáng)口令策略測試編號Web_07測試用例名稱強(qiáng)口令策略測試測試目的本測試為檢查目標(biāo)系統(tǒng)是否存在強(qiáng)口令策略。用例級別二級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)運(yùn)行正常Web業(yè)務(wù)存在帳號管理已知正常用戶的用戶、口令存在口令修改頁面執(zhí)行步驟使用正確的用戶、口令登陸Web業(yè)務(wù)系統(tǒng)打開口令修改頁面在新口令輸入框中輸入字母加數(shù)字的5位字符(如ab123)作為密碼并提交,如果未提示“口令長度過短”等諸如此類的信息,說明存在弱點(diǎn),完成測試。在新口令輸入框中輸入6位數(shù)字(如123456)作為密碼并提交,如果未提示“口令字符需要大小寫”等諸如此類的信息,說明存在弱點(diǎn),完成測試。觀察結(jié)果預(yù)期結(jié)果目標(biāo)系統(tǒng)存在滿足上述步驟的較嚴(yán)格的口令復(fù)雜度策略。備注上面只是舉例說明口令復(fù)雜度的測試,實(shí)際上強(qiáng)口令策略還包括口令有效期、歷史口令等,這些都要測試。對于一些Web應(yīng)用密碼只能是數(shù)字組成,則不強(qiáng)制要求強(qiáng)口令。Web應(yīng)用安全開發(fā)規(guī)范中的強(qiáng)口令策略:1.口令長度的取值范圍為:0-32個字符;口令的最短長度和最長長度可配置;口令的最短長度建議默認(rèn)為6個字符。2.口令中至少需要包括一個大寫字母(A-Z)、一個小寫字母(a-z)、一個數(shù)字字符(0-9);口令是否包含特殊字符要求可以配置。3.口令中允許同一字符連續(xù)出現(xiàn)的最大次數(shù)可配置,取值范圍:0-9,當(dāng)取值為0時,表示無限制,建議默認(rèn)為3。4.口令須設(shè)置有效期,最短有效期的取值范圍:0-9999分鐘,當(dāng)取值為0時,表示不做限制,建議默認(rèn):5分鐘;最長有效期的取值范圍:0-999天,當(dāng)取值為0時,表示口令永久有效,建議默認(rèn):90天。5.在口令到期前,當(dāng)用戶登錄時系統(tǒng)須進(jìn)行提示,提前提示的天數(shù)可配置,取值范圍:1-99天,建議默認(rèn):7天。6.口令到達(dá)最長有效期后,用戶再次登錄成功但在進(jìn)入系統(tǒng)前,系統(tǒng)強(qiáng)制更改口令,直至更改成功。7:口令歷史記錄數(shù)可配置,取值范圍為:0-30;建議默認(rèn):3個。8:管理員/操作員/最終用戶修改自己的口令時,必須提供舊口令。9:初始口令為系統(tǒng)提供的默認(rèn)口令、或者是由管理員設(shè)定時,則在用戶/操作員使用初始口令成功登錄后,要強(qiáng)制用戶/操作員更改初始口令,直至更改成功。10:口令不能以明文的形式在界面上顯示。11:口令不能以明文的形式保存,須加密保存;口令與用戶名關(guān)聯(lián)加密,即加密前的數(shù)據(jù)不僅包括口令,還包括用戶名。12:只有當(dāng)用戶通過認(rèn)證之后才可以修改口令。13:修改口令的帳號只能從服務(wù)器端的會話信息中獲取,而不能由客戶端指定。建議:實(shí)現(xiàn)弱口令詞典功能。測試結(jié)果會話管理測試身份信息維護(hù)方式測試編號Web_01測試用例名稱身份信息維護(hù)方式測試測試目的發(fā)現(xiàn)目標(biāo)系統(tǒng)是否采用參數(shù)來進(jìn)行身份判斷。用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)正常運(yùn)行Web業(yè)務(wù)存在不同級別的權(quán)限(角色)執(zhí)行步驟登錄系統(tǒng)配置WebScarab進(jìn)行httpget和post請求攔截請求Web頁面在WebScarab中查看請求報文檢查請求消息中是否攜帶了與用戶身份相關(guān)的數(shù)據(jù)。如果有,修改身份信息。如果服務(wù)器端以修改后的身份進(jìn)行操作,則說明存在漏洞,完成測試。預(yù)期結(jié)果用戶登陸后,身份信息不再由客戶端提交,而是以服務(wù)器端會話信息中保存的身份信息為準(zhǔn)。備注測試結(jié)果Cookie存儲方式測試編號Web_02測試用例名稱Cookie存儲方式測試測試目的某些Web應(yīng)用將SesssionId放到了URL中進(jìn)行傳輸,攻擊者能夠誘使被攻擊者訪問特定的資源,例如圖片。在被攻擊者查看資源時獲取該SessionID(在HTTP協(xié)議中Referer標(biāo)題頭中攜帶了來源地址),從而導(dǎo)致身份盜用。用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)運(yùn)行正常Web業(yè)務(wù)存在登陸認(rèn)證模塊已知正確的用戶名、口令執(zhí)行步驟登錄系統(tǒng)。請求不同的業(yè)務(wù)應(yīng)用觀察URL。預(yù)期結(jié)果URL中沒有攜帶SessionID信息(可能是sid,JSESSIONID等形式)。備注測試結(jié)果用戶注銷登陸的方式測試編號Web_03測試用例名稱用戶注銷登陸的方式測試測試目的查看是否提供注銷登陸功能用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)運(yùn)行正常Web業(yè)務(wù)存在登陸認(rèn)證模塊已知正確的用戶名、口令執(zhí)行步驟使用正常的用戶、口令登錄系統(tǒng)。查找登陸后的所有頁面中是否存在明確的“退出”或“注銷”(或類似)的按鈕或者鏈接預(yù)期結(jié)果登陸后的頁面中有明確的“退出”或“注銷”按鈕。備注測試結(jié)果注銷時會話信息是否清除測試編號Web_04測試用例名稱注銷時(logout),會話信息是否清除測試目的由于網(wǎng)站程序在編寫上考慮不周,用戶注銷后會話信息沒有清除,導(dǎo)致用戶在點(diǎn)擊注銷按鈕之后還能繼續(xù)訪問注銷之前(也就是登陸之后)才能訪問的頁面。我們需要經(jīng)過測試來判斷是否存在此類問題。用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)正常運(yùn)行存在注銷功能的頁面執(zhí)行步驟使用合法的賬戶口令登陸。開啟WebScarab,配置對GET和POST請求進(jìn)行攔截在瀏覽器中配置代理服務(wù)器IP為,端口為8008在Web頁面中進(jìn)行一些操作(比如修改個人信息),這些操作都會被WebScarab攔截,不修改,在彈出的WebScarab界面中點(diǎn)擊“AcceptChanges”按鈕。這樣請求就被WebScarab記錄下來。然后在Web頁面中點(diǎn)擊注銷/退出(logout)。點(diǎn)擊WebScarab的“ManualRequest”TAB頁,在PreviousRequests的下拉列表框中選擇“步驟4”所產(chǎn)生的URL請求,然后點(diǎn)擊“FetchResponse”,重新發(fā)送“步驟4”的URL請求。在WebScarab的Response的“Raw”Tab頁中觀察返回結(jié)果,如果還能夠正常完成“步驟4”的操作,則存在安全漏洞。預(yù)期結(jié)果在WebScarab的Response的“Raw”Tab頁中顯示“HTTP/1.1302MovedTemporarily”,不能夠訪問只有登陸才能訪問的頁面,不能完成只有登陸后才能完成的操作。備注如果存在多個注銷功能的頁面,要重復(fù)測試過程把所有有注銷功能的頁面測試完。測試結(jié)果會話超時時間測試編號Web_05測試用例名稱會話超時時間測試測試目的查看是否存在瀏覽器窗口閑置超時后需重新登錄的機(jī)制用例級別一級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)運(yùn)行正常Web業(yè)務(wù)存在登陸認(rèn)證模塊已知正確的用戶名、口令執(zhí)行步驟使用正常的用戶、口令登錄系統(tǒng)。將瀏覽器窗口閑置11分鐘。刷新瀏覽器,查看是否需要重新登錄。備注:也可以登陸后臺Web服務(wù)器,查看對應(yīng)的szboadna-config.xml文件中的cook.expire.time參數(shù)值,該值表示會話的超時時間。預(yù)期結(jié)果會話超時時間不大于10分鐘,刷新瀏覽器之后需要重新登錄。備注測試結(jié)果會話定置測試編號Web_06測試用例名稱會話定置測試測試目的查看登錄成功后會話標(biāo)識是否變更。如果未變更,那么攻擊者就可以通過一些手段(如構(gòu)造URL)為受害著確定一個會話標(biāo)識,當(dāng)受害者登錄成功后,攻擊者也可以利用這個會話標(biāo)識冒充受害者訪問系統(tǒng)。用例級別三級測試條件已知Web網(wǎng)站地址Web業(yè)務(wù)運(yùn)行正常Web業(yè)務(wù)存在登陸認(rèn)證模塊已知正確的用戶名、口令執(zhí)行步驟訪問登錄頁面開啟WebScarab,配置對GET和POST請求進(jìn)行攔截;并在瀏覽器中配置代理服務(wù)器IP為,端口為8008填入正確的用戶名和口令,填入正確的驗(yàn)證碼,登錄WebScarab跳出攔截界面,點(diǎn)擊“RAW”TAB頁,查看會話標(biāo)識(例如JSP的會話標(biāo)識為JSESSIONID)的值。點(diǎn)擊“AcceptChanges”,登錄成功。成功登錄后,點(diǎn)擊系統(tǒng)提供的鏈接,請求任意功能頁面。WebScarab再次跳出攔截界面,點(diǎn)擊“RAW”TAB頁,查看(例如JSP的會話標(biāo)識為JSESSIONID)的值。如果步驟4和步驟7查看到的會話標(biāo)識的值一樣,說明登錄前后會話標(biāo)識沒有變更,存在會話定置的安全漏洞。預(yù)期結(jié)果步驟4和步驟7(登錄前后)查看到的會話標(biāo)識的值不一樣備注雖然會話定置的危害比較大,但由于要事先為受害者確定會話標(biāo)識,并且讓受害者根據(jù)此會話標(biāo)識登錄系統(tǒng),其發(fā)生的概率很小,所以綜合風(fēng)險不高,測試時根據(jù)被測系統(tǒng)安全要求的高低,來確定是否執(zhí)行該用例。測試結(jié)果文件上傳下載測試文件上傳測試編號Web_01測試用例名稱文件上傳測試測試目的很多網(wǎng)站提供文件上傳功能(包括圖片上傳),如果在服務(wù)器端沒有對上傳文件的類型、大小以及保存的路徑及文件名進(jìn)行嚴(yán)格限制,攻擊者就很容易上傳后門程序取得WebShell,從而控制服務(wù)器。用例級別一級測試條件Web業(yè)務(wù)運(yùn)行正常待測網(wǎng)站存在文件上傳頁面執(zhí)行步驟登陸網(wǎng)站,并打開文件上傳頁面點(diǎn)擊“瀏覽”按鈕,并選擇本地的一個JSP文件(比如hacker.jsp),確認(rèn)上傳。如果客戶端腳本限制了上傳文件的類型(比如允許gif文件),則把hacker.jsp更名為hacker.gif;配置HTTPProxy(WebScarab)進(jìn)行http請求攔截;重新點(diǎn)擊“瀏覽”按鈕,并選擇hacker.gif,確認(rèn)上傳。在WebScarab攔截的HTTP請求數(shù)據(jù)中,將hacker.gif修改為hacker.jsp,再發(fā)送請求數(shù)據(jù)。登陸后臺服務(wù)器,用命令find/-namehacker.jsp查看hacker.jsp文件存放的路徑。如果可以直接以Web方式訪問,則構(gòu)造訪問的URL,并通過瀏覽器訪問hacker.jsp,如果可以正常訪問,則已經(jīng)取得WebShell,測試結(jié)束。如果hacker.jsp無法通過web方式訪問,例如hacker.jsp存放在/home/tmp/目錄下,而/home/tomcat/webapps目錄對應(yīng)/,則進(jìn)行下一步重復(fù)1~3,在WebScarab攔截的HTTP請求數(shù)據(jù)中,將hacker.gif修改為../tomcat/webapps/hacker.jsp,再發(fā)送請求數(shù)據(jù)。在瀏覽器地址欄輸入/hacker.jsp,訪問該后門程序,取得WebShell,結(jié)束測試。預(yù)期結(jié)果服務(wù)器端對上傳文件的類型、大小以及保存的路徑及文件名進(jìn)行嚴(yán)格限制,無法上傳后門程序。備注測試結(jié)果文件下載測試編號Web_02測試用例名稱文件下載測試1測試目的很多網(wǎng)站提供文件下載功能,如果網(wǎng)站對下載文件的權(quán)限控制不嚴(yán),攻擊者很容易利用目錄跨越、越權(quán)下載到本不該下載的文件(比如其他用戶的私有、敏感文件)。用例級別一級測試條件Web業(yè)務(wù)運(yùn)行正常已知某下載頁面URL(假設(shè)用戶a下載自己的指導(dǎo)書文件/download/usera/test.xls)執(zhí)行步驟猜測并更改URL路徑……觀察頁面返回信息,如果可以越權(quán)獲取到其他用戶的私有、敏感文件,則說明存在漏洞。預(yù)期結(jié)果不能越權(quán)獲取到不該獲取的文件備注參考資料信息泄漏測試連接數(shù)據(jù)庫的賬號密碼加密測試編號Web_01測試用例名稱連接數(shù)據(jù)庫的帳號密碼加密測試測試目的連接數(shù)據(jù)庫的帳號密碼在配置文件中如果明文存儲,容易被惡意維護(hù)人員獲取,從而直接登陸后臺數(shù)據(jù)庫進(jìn)行數(shù)據(jù)篡改。用例級別一級測試條件1、擁有Web服務(wù)器操作系統(tǒng)的帳號和口令2、已知連接數(shù)據(jù)庫的帳號密碼所在的配置文件,可以找環(huán)境搭建人員咨詢。(還可以用grep命令查找哪些xml文件包含該數(shù)據(jù)庫帳號,然后打開這些文件進(jìn)行檢查)執(zhí)行步驟登陸Web服務(wù)器的操作系統(tǒng)。用find命令找到對應(yīng)的配置文件。查看配置文件中連接數(shù)據(jù)庫的帳號密碼在配置文件中是否加密。預(yù)期結(jié)果連接數(shù)據(jù)庫的帳號密碼在配置文件中加密存儲備注測試結(jié)果客戶端源代碼敏感信息測試編號Web_02測試用例名稱客戶端源代碼敏感信息測試測試目的Web頁面的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論