Web安全測試指南--會話管理

會話複雜度:

編號php

Web_ Sess_01web

用例名稱chrome

會話複雜度測試數據庫

用例描述瀏覽器

測試目標系統產生的session id是否具有足夠的複雜度。緩存

嚴重級別安全

cookie

前置條件session

一、  目標系統使用登陸會話機制。jsp

二、  目標web應用可訪問,業務正常運行。

三、  已安裝http攔截代理(burpfiddlerwebscarab都可)。

執行步驟

一、  開啓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只是全部會話標記的統稱,不一樣系統會話標記名稱可能不同,好比:jssessionidsidDDNSCOOKIE等。

 

5.3.2、會話預測:

編號

Web_ Sess_02

用例名稱

會話可預測性測試

用例描述

測試session id是否能夠進行預測。

嚴重級別

前置條件

一、  目標系統使用登陸會話機制。

二、  目標web應用可訪問,業務正常運行。

三、  已安裝http攔截代理(burpfiddlerwebscarab都可)。

執行步驟

一、  開啓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個以上。

5.3.3、會話定置:

編號

Web_Sess_03

用例名稱

會話定置測試

用例描述

測試用戶成功後目標系統是否會更新會話標記(好比:session id)。

嚴重級別

前置條件

一、  目標系統使用登陸會話機制。

二、  目標web應用可訪問,業務正常運行。

三、  已安裝http攔截代理(burpfiddlerwebscarab都可)。

執行步驟

一、  開啓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日誌或緩存在瀏覽器。

5.3.4CSRF

編號

Web_Sess_04

用例名稱

跨站僞造請求測試

用例描述

測試在目標系統上進行關鍵性或敏感性操做是否攜帶隨機token

嚴重級別

前置條件

一、  目標系統使用登陸會話機制。

二、  目標web應用可訪問,業務正常運行。

三、  已安裝http攔截代理(burpfiddlerwebscarab都可)。

四、  已明確區分出目標系統的關鍵性或敏感性操做(好比:刪除數據庫)。

執行步驟

一、  開啓burp,設置對http請求進行攔截,並在瀏覽器中配置代理。

二、  使用正確帳戶名和密碼登陸目標系統。

三、  訪問具備關鍵性或敏感性功能的頁面,並點擊提交請求(好比:刪除數據庫、重啓設備等等)。

四、  burp攔截到的GET/POST http請求中觀察全部參數的值。

預期結果

參數體中存在不可預測的隨機因子(好比:UUIDsession id),好比:

POST /db/delDB.jsp HTTP/1.1  #添加數據庫

Host: www.example.com

[other HTTP headers]

dbName=users&token =5uvd5k97rqdpk698firq7g93s1

測試結果

 

備註

一、  對於關鍵性或敏感性操做的判斷通常具備較大的主觀性,一般來說,能夠從執行該操做後可能形成的結果來判斷,但不一樣的人可能看到的危害程度不同,最終應當以能想象獲得的最嚴重的狀況爲標準。

二、  「寫」操做每每是關鍵性或敏感性操做的特徵,好比:增、刪和改,對於這類操做應予以特別的關注。

5.3.5、會話註銷:

編號

Web_Sess_05

用例名稱

會話註銷測試

用例描述

測試目標系統的會話註銷功能是否存在安全缺陷。

嚴重級別

前置條件

一、  目標系統使用登陸會話機制。

二、  目標web應用可訪問,業務正常運行。

三、  已安裝http攔截代理(burpfiddlerwebscarab都可)。

執行步驟

一、  開啓burp,設置對http請求進行攔截,並在瀏覽器中配置代理。

二、  使用正確帳戶名和密碼登陸目標系統。

三、  檢查目標系統是否存在註銷功能,若是不存在,測試結束(不經過)。

四、  點擊進入不一樣的功能頁面,檢查是否在全部頁面都能很容易地看到或找到註銷功能。

五、  點擊目標系統須要帶cookie才能訪問的任意功能。

六、  burp攔截到的http請求轉入burp repeater

七、  點擊目標系統的註銷功能登出帳戶。

八、  burp repeater上重放步驟6攔截到的http請求,並觀察結果。

預期結果

一、  步驟3中,目標系統存在註銷功能。

二、  步驟8中,目標系統跳轉到登陸頁面或者返回相似「未登陸」的信息或者錯誤碼。

測試結果

 

備註

 

5.3.6、會話超時:

編號

Web_Sess_06_01

用例名稱

會話閒置超時測試

用例描述

測試會話在閒置預設的時間後是否被強制銷燬。

嚴重級別

前置條件

一、  目標系統使用登陸會話機制。

二、  目標web應用可訪問,業務正常運行。

執行步驟

一、  使用正確帳戶名和密碼登陸目標系統。

二、  打開任意須要登陸才能訪問的功能頁面。

三、  在目標系統上閒置N分鐘而且不進行任何操做

四、  刷新步驟2的功能頁面,並觀察結果。

預期結果

目標系統跳轉到登陸頁面或者返回相似「未登陸」的信息或者錯誤碼。

測試結果

 

備註

N的值應根據業務自身的特色來決定,對於安全性要求高的業務,通常設置爲15,其它的業務能夠往上遞增直至一個合理的值。

 

編號

Web_Sess_06_02

用例名稱

會話絕對超時測試

用例描述

測試會話在使用預設的時間後是否被強制銷燬。

嚴重級別

前置條件

一、  目標系統使用登陸會話機制。

二、  目標web應用可訪問,業務正常運行。

執行步驟

一、  使用正確帳戶名和密碼登陸目標系統。

二、  打開任意須要登陸才能訪問的功能頁面。

三、  等待N分鐘(期間可進行除了註銷之外的任意操做)。

四、  刷新步驟2的功能頁面,並觀察結果。

預期結果

目標系統跳轉到登陸頁面或者返回相似「未登陸」的信息或者錯誤碼。

測試結果

 

備註

一、  會話絕對超時時間通常大於等於會話閒置時間。

二、  會話絕對超時時間並不是全部業務系統必須的,但安全性要求高的業務應當存在。

三、  N的值一樣根據業務自身特性來決定。

提示:若是IE顯示不正常,請使用chrome瀏覽器

相關文章
相關標籤/搜索