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浏览器

相关文章
相关标签/搜索