关于Session Fixation

简介:  前两天我转了篇文章到pst的邮件列表,是关于在struts 2框架下重新生成session的,引起了一些讨论,我觉得有必要在这里提醒下程序员们,可能他们早就遗忘了这种威胁了。
 前两天我转了篇文章到pst的邮件列表,是关于在struts 2框架下重新生成session的,引起了一些讨论,我觉得有必要在这里提醒下程序员们,可能他们早就遗忘了这种威胁了。

JSESSIONID Regeneration in Struts 2

实际上这就是一种针对 Session Fixation 的防范。

Session Fixation 翻译过来就是 “Session 完成攻击”,以前的老的应用里可能比较常见这种问题,但是随着现在web应用越来越复杂,这种问题已经很少了。

先理解这个攻击,打个比方:

1. 你花钱买了一辆车
2. 你把车钥匙复制了一把
3. 你把这辆车卖给了一个冤大头
4. 冤大头同学花钱买了辆2手车,结果在某天你趁他不在,用事先复制好的钥匙把车开走了!


这个过程就是一个 Session Fixation 的过程,车钥匙就是 Session ID

这类问题的本质在于: WEB应用在认证后没有改写或者更新session,从而导致了认证前的session还能使用。

如果攻击者 事先能够获知该session ID,则可以 欺骗用户使用该session ID进行认证,认证后, 由于session ID不变,但是该session变成了一个认证后的session,从而攻击者 可以直接使用该session ID以用户身份通过系统的认证。

在Web环境里,用户浏览页面时服务器会产生一个session,然后session ID会放在客户端,比如在浏览器URL里,或者是cookie里。用户持有这个session ID,服务器就可以找到他的session。用户输入用户名和密码后,系统对该session进行认证。认证成功,该session就是一个认证后的session,服务器就知道该用户认证过了,用户访问认证页面时就不再需要每次输入用户名和密码了。


比如lqqm论坛,就是把session ID放在url里


常见的利用 Session Fixation的方法一般是发送一个link到邮件里,诱骗用户点击后登录,使得该session通过认证,比如:

http://www.fvck.com/auth?session=xxxxxxx


要对抗这种攻击,很简单,就是 认证后重新生成一个session就可以了,甚至是 增改当前session都能起到这个目的。

像lqqm论坛,在登录后马上就把session重写了。tomcat等也是如此。

而现在大部分的网站、论坛等复杂的WEB应用,一般是把session ID放在cookie中,而用户登录后,cookie里一般会多很多东西,这些多出来的东西也可以保证用户不受sesssion fixation攻击的影响。


不过,session fixation攻击作为一种漏洞类型,不仅仅局限于用户登录的部分,只要是任何需要“ 认证”的地方,都需要考虑到这种威胁。

目录
相关文章
|
存储 Java Maven
Spring Boot WebFlux 增删改查完整实战 demo
Spring Boot WebFlux 增删改查完整实战 demo
|
存储 人工智能 API
瞭望塔丨AI 与云,融合创新
未来,云和 AI 结合一定会成为新的生产力。
瞭望塔丨AI 与云,融合创新
宜搭子表单内数据提交时如何与历史数据进行去重效验?
宜搭子表单内数据提交时如何与历史数据进行去重效验?不是仅仅在当前提交页面内的子表单数据进行重复效验。
宜搭子表单内数据提交时如何与历史数据进行去重效验?
|
XML JSON JavaScript
JSON简介
JSON简介
360 0
|
人工智能
AI绘画---Stable Diffusion checkpoint 插件无法安装,中文包无法下载怎么办?这里该如何解决,扩展无法出现
AI绘画---Stable Diffusion checkpoint 插件无法安装,中文包无法下载怎么办?这里该如何解决,扩展无法出现
市面上最常见的几个邮件营销系统,哪个最好用?
本文比较了5个主流邮件营销系统:蜂邮EDM、AokSend、Sendinblue、GetResponse和AWeber。蜂邮EDM和AokSend以其易用性和丰富模板深受初学者和小企业喜爱;Sendinblue以低定价和多功能吸引中小企业;GetResponse是全能营销平台,适合各类企业;AWeber则适合有经验的用户。选择最适合自己的系统能提升邮件营销效率。
|
安全 Java 开发者
Java编程:深入探索其原理、特性与实战代码
Java编程:深入探索其原理、特性与实战代码
142 1
|
Arthas 监控 Java
基于arthas排查Java内存问题
基于arthas排查Java内存问题,准确快速定位线上问题
1162 0
基于arthas排查Java内存问题
|
消息中间件 SQL 存储
Atlas 2.1.0 实践(2)—— 安装Atlas
在完成Atlas编译以后,就可以进行Atlas的安装了。Atlas的安装主要是安装Atlas的Server端,也就Atlas的管理页面,并确保Atlas与Kafka Hbase Solr等组件的集成。
1215 0
Atlas 2.1.0 实践(2)—— 安装Atlas
|
前端开发 JavaScript 小程序
【休闲益智】【HTML】看字说颜色
【休闲益智】【HTML】看字说颜色
3046 0
【休闲益智】【HTML】看字说颜色