編號php |
Web_ Sess_01web |
用例名稱chrome |
會話複雜度測試數據庫 |
用例描述瀏覽器 |
測試目標系統產生的session id是否具有足夠的複雜度。緩存 |
嚴重級別安全 |
高cookie |
前置條件session |
一、 目標系統使用登陸會話機制。jsp 二、 目標web應用可訪問,業務正常運行。 三、 已安裝http攔截代理(burp、fiddler或webscarab都可)。 |
執行步驟 |
一、 開啓burp,設置對http請求進行攔截,並在瀏覽器中配置代理。 二、 打開目標系統的登陸頁面,使用正確的用戶名和密碼提交登陸,好比: POST /login.php HTTP/1.1 #登陸請求 Host: www.example.com [other HTTP headers] username=admin&password=123456 三、 將burp攔截到的登陸請求轉入burp sequencer。 四、 使用burp sequencer向目標系統快速大量地提交登陸請求以得到批量session id,並將獲得的session id保存到本地。 五、 使用文本編輯器打開保存session id的文件。 六、 檢查全部session id的長度。 七、 檢查全部session id的構成。 |
預期結果 |
一、 全部的session id的字符串長度都大於等於16。 二、 全部session id都由數字、普通小寫字符、普通大寫字符和特殊字符中的2種組合而成。好比:6p331epl5hjserrcbrg5lgmhi6 |
測試結果 |
|
備註 |
一、 關於burp sequencer的使用,請參考《常見安全工具使用指南》。 二、 用於分析的token數量建議至少100個以上。 三、 Session id只是全部會話標記的統稱,不一樣系統會話標記名稱可能不同,好比:jssessionid、sid和DDNSCOOKIE等。 |
編號 |
Web_ Sess_02 |
用例名稱 |
會話可預測性測試 |
用例描述 |
測試session id是否能夠進行預測。 |
嚴重級別 |
高 |
前置條件 |
一、 目標系統使用登陸會話機制。 二、 目標web應用可訪問,業務正常運行。 三、 已安裝http攔截代理(burp、fiddler或webscarab都可)。 |
執行步驟 |
一、 開啓burp,設置對http請求進行攔截,並在瀏覽器中配置代理。 二、 打開目標系統的登陸頁面,使用正確的用戶名和密碼提交登陸,好比: POST /login.php HTTP/1.1 #登陸請求 Host: www.example.com [other HTTP headers] username=admin&password=123456 三、 將burp攔截到的登陸請求轉入burp sequencer。 四、 使用burp sequencer向目標系統快速大量地提交登陸請求以得到批量session id,並將獲得的session id保存到本地。 五、 使用文本編輯器打開保存session id的文件。 六、 檢查產生的token是否存在靜態不變的部分,好比: 8d2pv839pgopg9q53lpb7qb7r5 8d2pv839v581o45rkhcg7qb7r5 七、 檢查產生的token是否存在可預測的部分,好比: 5id92rgqhkvb1vtsic18075997 qnplhr8frbah41n9s028075998
jtqm4mi1i8r0r4fae138075999 八、 將token中靜態不變以及可預測的部分刪除,檢查剩餘部分是否知足會話複雜度要求(參考用例:「會話複雜度」)。 |
預期結果 |
刪除靜態和可預測部分後的Session id知足會話複雜度要求。 |
測試結果 |
|
備註 |
一、 關於burp sequencer的使用,請參考《常見安全工具使用指南》。 二、 用於分析的token數量建議至少100個以上。 |
編號 |
Web_Sess_03 |
用例名稱 |
會話定置測試 |
用例描述 |
測試用戶成功後目標系統是否會更新會話標記(好比:session id)。 |
嚴重級別 |
中 |
前置條件 |
一、 目標系統使用登陸會話機制。 二、 目標web應用可訪問,業務正常運行。 三、 已安裝http攔截代理(burp、fiddler或webscarab都可)。 |
執行步驟 |
一、 開啓burp,設置對http請求進行攔截,並在瀏覽器中配置代理。 二、 打開目標系統的登陸頁面,使用正確的用戶名和密碼提交登陸。 三、 在burp攔截到的http請求中檢查是否存在會話標記(好比:session id),若是存在則記錄下來,若是沒有則測試結束(經過),好比: POST /login.php HTTP/1.1 #登陸請求 Host: www.example.com Cookie: PHPSESSID=urvo14kd4ke4j5vef07t4edj43;
[other HTTP headers] username=admin&password=123456 四、 釋放提交被攔截的登陸請求,直至登陸成功。 五、 登陸成功後,點擊目標系統須要帶cookie才能訪問的任意功能。 六、 在burp攔截到的http請求中檢查會話標記的值(通常在cookie中)。 |
預期結果 |
步驟3和步驟6中,會話標記的值不同。 |
測試結果 |
|
備註 |
使用GET提交請求數據可能會被記錄在web server日誌或緩存在瀏覽器。 |
編號 |
Web_Sess_04 |
用例名稱 |
跨站僞造請求測試 |
用例描述 |
測試在目標系統上進行關鍵性或敏感性操做是否攜帶隨機token。 |
嚴重級別 |
中 |
前置條件 |
一、 目標系統使用登陸會話機制。 二、 目標web應用可訪問,業務正常運行。 三、 已安裝http攔截代理(burp、fiddler或webscarab都可)。 四、 已明確區分出目標系統的關鍵性或敏感性操做(好比:刪除數據庫)。 |
執行步驟 |
一、 開啓burp,設置對http請求進行攔截,並在瀏覽器中配置代理。 二、 使用正確帳戶名和密碼登陸目標系統。 三、 訪問具備關鍵性或敏感性功能的頁面,並點擊提交請求(好比:刪除數據庫、重啓設備等等)。 四、 在burp攔截到的GET/POST http請求中觀察全部參數的值。 |
預期結果 |
參數體中存在不可預測的隨機因子(好比:UUID或session id),好比: POST /db/delDB.jsp HTTP/1.1 #添加數據庫 Host: www.example.com [other HTTP headers] dbName=users&token =5uvd5k97rqdpk698firq7g93s1 |
測試結果 |
|
備註 |
一、 對於關鍵性或敏感性操做的判斷通常具備較大的主觀性,一般來說,能夠從執行該操做後可能形成的結果來判斷,但不一樣的人可能看到的危害程度不同,最終應當以能想象獲得的最嚴重的狀況爲標準。 二、 「寫」操做每每是關鍵性或敏感性操做的特徵,好比:增、刪和改,對於這類操做應予以特別的關注。 |
編號 |
Web_Sess_05 |
用例名稱 |
會話註銷測試 |
用例描述 |
測試目標系統的會話註銷功能是否存在安全缺陷。 |
嚴重級別 |
高 |
前置條件 |
一、 目標系統使用登陸會話機制。 二、 目標web應用可訪問,業務正常運行。 三、 已安裝http攔截代理(burp、fiddler或webscarab都可)。 |
執行步驟 |
一、 開啓burp,設置對http請求進行攔截,並在瀏覽器中配置代理。 二、 使用正確帳戶名和密碼登陸目標系統。 三、 檢查目標系統是否存在註銷功能,若是不存在,測試結束(不經過)。 四、 點擊進入不一樣的功能頁面,檢查是否在全部頁面都能很容易地看到或找到註銷功能。 五、 點擊目標系統須要帶cookie才能訪問的任意功能。 六、 將burp攔截到的http請求轉入burp repeater。 七、 點擊目標系統的註銷功能登出帳戶。 八、 在burp repeater上重放步驟6攔截到的http請求,並觀察結果。 |
預期結果 |
一、 步驟3中,目標系統存在註銷功能。 二、 步驟8中,目標系統跳轉到登陸頁面或者返回相似「未登陸」的信息或者錯誤碼。 |
測試結果 |
|
備註 |
|
編號 |
Web_Sess_06_01 |
用例名稱 |
會話閒置超時測試 |
用例描述 |
測試會話在閒置預設的時間後是否被強制銷燬。 |
嚴重級別 |
高 |
前置條件 |
一、 目標系統使用登陸會話機制。 二、 目標web應用可訪問,業務正常運行。 |
執行步驟 |
一、 使用正確帳戶名和密碼登陸目標系統。 二、 打開任意須要登陸才能訪問的功能頁面。 三、 在目標系統上閒置N分鐘而且不進行任何操做。 四、 刷新步驟2的功能頁面,並觀察結果。 |
預期結果 |
目標系統跳轉到登陸頁面或者返回相似「未登陸」的信息或者錯誤碼。 |
測試結果 |
|
備註 |
N的值應根據業務自身的特色來決定,對於安全性要求高的業務,通常設置爲15,其它的業務能夠往上遞增直至一個合理的值。 |
編號 |
Web_Sess_06_02 |
用例名稱 |
會話絕對超時測試 |
用例描述 |
測試會話在使用預設的時間後是否被強制銷燬。 |
嚴重級別 |
低 |
前置條件 |
一、 目標系統使用登陸會話機制。 二、 目標web應用可訪問,業務正常運行。 |
執行步驟 |
一、 使用正確帳戶名和密碼登陸目標系統。 二、 打開任意須要登陸才能訪問的功能頁面。 三、 等待N分鐘(期間可進行除了註銷之外的任意操做)。 四、 刷新步驟2的功能頁面,並觀察結果。 |
預期結果 |
目標系統跳轉到登陸頁面或者返回相似「未登陸」的信息或者錯誤碼。 |
測試結果 |
|
備註 |
一、 會話絕對超時時間通常大於等於會話閒置時間。 二、 會話絕對超時時間並不是全部業務系統必須的,但安全性要求高的業務應當存在。 三、 N的值一樣根據業務自身特性來決定。 |
提示:若是IE顯示不正常,請使用chrome瀏覽器