WEB项目SESSIONID固定漏洞
来源:互联网 发布:手机淘宝 朋友代付 编辑:程序博客网 时间:2024/05/17 22:52
问题场景
访问一个WEB页面,会看到有一个JSESSIONID,这是由服务器端在会话开始是通过set-cookie来设置的匿名SessionId
在登录进入后,再次查看SESSIONID,会发现此值未发生改变,这样,就产生了SESSIONID固定漏洞
攻击步骤
第一步,需要获取被攻击用户的JSESSIONID,可以通过给被攻击用户一个伪造的JSESSIONID,使其用该JESSIONID登录,获取用户登录后的JESSIONID。(这里作为示范,直接从浏览器中获取)
第二步,等被攻击用户登录,是JESSIONID成为已登录状态。
第三步,伪造请求,访问登录后的资源。
在用户登录使该JSESSIONID称为已登录的ID后,攻击者就可以利用这个ID伪造请求访问登录后的资源。
漏洞分析处理
出现该问题的主要原因是登录控制使用的固定的SessionID,登录前与登录后的SessionID是一样的。这样就使得攻击者可以简单的伪造一个SessionID诱使用户使用该SessionID登录,即可获取登录权限。如果配合XSS漏洞,则更加可以轻易获取登录权限。避免这一漏洞的方法主要有两种:
1.在登录后重置sessionID
在登录验证成功后,通过重置session,是之前的匿名sessionId失效,这样可以避免使用伪造的sessionId进行攻击。
request.getSession().invalidate();
这样登录前与登录后的sessionID就不会相同
2.设置httpOnly属性
httponly是微软对cookie做的扩展,该值指定 Cookie 是否可通过客户端脚本访问, 解决用户的cookie可能被盗用的问题,减少跨站脚本攻击
主流的大多数浏览器已经支持此属性。httpOnly是cookie的扩展属性,并不包含在servlet2.x的规范里,因此一些javaee应用服务器并不支持httpOnly,针对tomcat,>6.0.19或者>5.5.28的版本才支持httpOnly属性,具体方法是在conf/context.xml添加httpOnly属性设置
<Context useHttpOnly="true">...</Context>
另一种设置httpOnly的方式是使用Tomcat的servlet扩展直接写header
response.setHeader( "Set-Cookie", "name=value; HttpOnly");
以上两种方法就可以避免SESSIONID固定漏洞被利用
0 0
- WEB项目SESSIONID固定漏洞
- 固定SessionID漏洞
- 固定SessionID漏洞
- 固定SessionID漏洞
- 固定SessionID漏洞
- 固定SessionID 漏洞 攻击
- 固定SessionID漏洞攻击
- 固定SessionID 漏洞 攻击(session fixation attacks)
- 关于web项目sessionID欺骗的问题
- 更新sessionId修复漏洞攻击
- Java SessionID漏洞分析处理
- web项目:漏洞修复(1)
- SessionId
- SessionID
- 建议在客户端生成比较固定的sessionid
- Web漏洞
- web安全验收漏洞修复总结【java项目心血结晶】
- web项目:漏洞修复(2)_tomcat配置
- linux安装问题:what is the location of the gcc program on your machine
- jquery checkbox勾选/取消勾选的诡异问题
- linux命令-寻找超过100M的文件,并将其删除
- vue2.0与express构建淘票票页面
- 详细解析STM32单片机
- WEB项目SESSIONID固定漏洞
- RecyclerView添加点击事件和textView的超链接点击事件冲突
- 认识dubbo源码 一
- Python定义与调用函数、默认参数操作实例说明
- Eclipse安装maven插件
- spring配置文件中 destroy-method="close"的作用
- IntelliJ IDEA 2016.1.2 Web项目配置tomcat
- Java Nashorn--Part 1
- Genymotion与电脑文件共享