基于Burpsuite的安全测试四:Session测试
共三个情景:
情景1:Session会话固定测试
- 用户退出系统后,应将session认证属性标识清空,如果未清空则会导致session会被重复利用并进行登录,攻击者可以利用该漏洞生成固定session会话,让用户利用攻击者生成的固定会话进行系统登录,从而导致用户会话认证被窃取。
- 退出系统时记录session信息。
- 再次登录,将session信息与第一步session信息做对比,如果相同则存在固定会话风险。
系统修复方案:
客户端登录系统时,应首先判断客户端是否提交浏览器的留存session认证会话属性标识,客户端提交此信息至服务器时,应及时销毁浏览器留存的session认证会话,并要求客户端浏览器重新生成session认证会话属性标识。
情景2:Session会话注销测试
- Session是服务器对客户端用户身份认证的标识,用户注销或者退出登录时,服务器应将客户端session认证属性标识清空。如果未能清空,则认证会话将持续有效,攻击者或者该session后导致用户权限被盗。
- 登录系统时通过Burp suite截取登录相关请求数据,并记录session信息,且空白区域右击,将请求Send Repeater,请请求发送到Repeater模块。
- 退出系统
- 在Repeater模块单击Go按钮,再次发送登录请求查看系统是否对退出后的用户授权session进行解除授权。
系统修复方案:
用户注销或者退出系统时,服务器应及时销毁seesion认证会话信息并清空客户端浏览器session属性标识。
情景3:Session会话超时时间测试
- 用户成功登录后seesion认证会话具有声明周期,如果在固定时间内没有和服务器进行交互操作,则应销毁该seesion认证会话信息,要求用户重新登录,所以需要对会话认证授权时长进行测试。
- 登录系统后,查看用户信息,比如进入我的页面,同时使用Burp suite截取用户信息及session,且空白区域右击,将请求Send Repeater,请请求发送到Repeater模块。
- 停留系统代码设置的指定时长,不做任何客户端与服务器的交互操作,如30分钟,30分钟后再在Repeater模块单击Go按钮,再次发送查看用户信息请求,如果能看到用户信息则表示标识生命周期没起作用,如果看不到用户信息并提示需用户登录等信息则标识生命周期正常执行了。
系统修复方案:
对每个生成的session认证会话配置生命周期,常规业务建议30分钟,降低因会话认证时间过长导致用户信息泄露风险。