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