会话固定攻击(Session Fixation)
⚡️会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会话以成功冒充他人,造成会话固定攻击。
整个攻击流程:
-
攻击者Attacker能正常访问该应用网站。
-
应用网站服务器返回一个会话ID给他。
-
攻击者Attacker用该回话ID构造一个该网站链接发给受害者Victim。
-
受害者Victim点击该链接。
-
携带攻击者的会话ID和用户名密码正常登陆了该网站,会话成功建立。
-
攻击者Attacker用该会话ID成功冒充并劫持了受害者Victim的会话。
👉了解更多
攻击分析:
攻击的整个过程,会话ID没变过,所以导致此漏洞。
🏡攻击修复: -
登录重建会话
每次登录后都重置会话ID,并生成一个新的会话ID,这样攻击者就无法用自己的会话ID来劫持会话,核心代码如下:
// 会话失效
session.invalidate();
// 会话重建
session=request.getSession(true);
- 禁用客户端访问cookie
此方法也避免了配合XSS攻击来获取Cookie中的会话信息以达成会话固定攻击。在Http响应头中启用HttpOnly属性,或者在tomcat容器中配置。
CSRF
⚡️CRSF(Cross-site request forgery)跨站请求伪造,不攻击网站服务器,而是冒充用户在站内的正常操作,以你的名义发送恶意请求(包括虚拟货币转账、发送邮件、购买商品…),造成个人隐私泄露以及财产安全问题。
攻击分析:
通常是由于服务器没有对请求头做严格过滤引起的。
🏡攻击修复(服务端)&#x