会话固定漏洞 – 作者:掌控安全一疯狂的学嘉

0x00 漏洞原理

由于HTTP的无状态性,导致Web应用程序必须使用会话机制来识别用户。会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会话以成功冒充他人,造成会话固定攻击。

但是这个漏洞在实际应用过程中比较鸡肋,需要配合XSS攻击等方式。

0x01 漏洞检测

访问网站(未登录):获取cookie信息,获取sessionid
登录网站:查看cookie信息,获取sessionid
查看登录前,登录后sessionid是否相同

0x02 漏洞利用

攻击流程

1、攻击者Attacker能正常访问该应用网站;

2、应用网站服务器返回一个会话ID给他;

3、攻击者Attacker用该会话ID构造一个该网站链接发给受害者Victim;

4-5、受害者Victim点击该链接,携带攻击者的会话ID和自己的用户名密码正常登录了该网站,会话成功建立;

6、攻击者Attacker用该会话ID成功冒充并劫持了受害者Victim的会话。

0x03 漏洞防御

1、登陆重建会话

每次登录后都重置会话ID,并生成一个新的会话ID,这样攻击者就无法用自己的会话ID来劫持会话,核心代码如下。

// 会话失效
session.invalidate();

// 会话重建
session=request.getSession(true);

2、禁用客户端访问Cookie

此方法也避免了配合XSS攻击来获取Cookie中的会话信息以达成会话固定攻击。在Http响应头中启用HttpOnly属性,或者在tomcat容器中配置。关于HttpOnly更多详细说明大家可以自行百度。

来源:freebuf.com 2021-04-17 17:58:49 by: 掌控安全一疯狂的学嘉

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论