前端漏洞(下)- 会话固定漏洞
漏洞复现目的:熟悉 会话固定漏洞 原理
漏洞介绍:
会话固定漏洞是指攻击者预先获取或设置一个会话ID,并诱使用户使用该ID登录目标系统。由于系统在用户认证后未更新会话ID,攻击者可利用已知ID劫持已认证的会话,冒充用户执行恶意操作。
搭建环境:docker 环境
命令:yml 文件目录下 执行 docker-compose up -d 直接拉取镜像
环境说明:
该环境中管理员用户名为admin,密码为password
实战指导:
访问 http://127.0.0.1:8991/web/setcookie.php?PHPSESSID=test ,可以在浏览器中看到了,Cookie已经设置为 "PHPSESSID=test"。
1、会话固定漏洞原理图
2、打开 http://127.0.0.1:8991/web/login.php 进行登录,登录后显示Hello admin! 当前为admin权限
3、打开一个无痕窗口,登陆http://127.0.0.1:8991/web/info.php网站,显示未登录
4、打开控制台,修改Cookie "PHPSESSID=test"
5、刷新页面,变为管理员权限, 会话固定攻击成功
6、漏洞防御
(1)在用户登录成功后重新创建一个session id
(2)登录前的匿名会话强制失效
(3)session id与浏览器绑定:session id与所访问浏览器有变化,立即重置
(4)session id与所访问的IP绑定:session id与所访问IP有变化,立即重置
(5)禁用客户端访问Cookie,此方法也避免了配合XSS攻击来获取Cookie中的会话信息以(6)达成会话固定攻击。在Http响应头中启用HttpOnly属性,或者在tomcat容器中配置