web基础漏洞-会话固定漏洞
1、定义
会话固定漏洞,如果在目标网站登录时,用户携带攻击者控制生成的登录凭证cookie,服务端接收后验证登录信息成功,选择使用请求中的已知凭证cookie,而非重新发放。
2、发生场景
(1)攻击者控制生成登录凭证cookie
- 一些场景中,会出现在请求url直接参数或者请求体部中设置,然后响应将请求参数设置为cookie。但是一般cookie名很难被设置为登录凭证cookie名,除非接收是按顺序进行的,将第n各参数的参数名设置为cookie名,其值为cookie值
- 业务设计缺陷,服务端希望前端基于脚本读取本地存储的cookie信息,并发送给服务端。
- xss漏洞可以在前端设置本地cookie,基于meta元素,或者js脚本document.cookie
(2)登录未重新发放覆盖cookie
3、利用过程
4、测试步骤
(1)是否存在token机制
(2)两次登录,检查登录凭证cookie是否变化
(3)挖掘xss或其它,使得控制生成登录凭证cookie
5、防护
(1)token机制
(2)登录覆盖cookie
6、补充
对于会话固定漏洞,严格来说,只要登录未覆盖等凭证cookie,就存在漏洞风险。
利用并不一定来自线上的,还可能是线下的。
比如多用户先后使用同一台主机的同一个浏览器登录操作,那么相互之间的登录凭证是相同的,其中一个作为攻击者,则可以基于burp进行直接的请求伪造。
尤其是,凭证是持久型cookie时,可以长期操作。