论坛首页 Java企业应用论坛

固定SessionID漏洞

浏览 21517 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-12-15  
java里面还算有解决方案,.net就悲剧了,目前还没发现好办法 (除了绑定IP)
0 请登录后投票
   发表时间:2010-12-15  
chris_zley 写道
JE帐号 写道
chris_zley 写道
其实这个漏洞很简单,但整个攻击过程最难点在于如何获取用户的jsessionid


这个方案不是为了解决哪些能获取用户jsessionid的情况. 而是为了解决去诱导用户使用一个与jsessionid绑定的url(sessionid的url改写),并诱使用户在此基础上进行登录操作的情况.
这和获取去获取用户jsessionid还是有本质区别的,因为这种引诱的情况,实际上是不需要攻击用户的终端和网络的.

另外,对于有人说的tomcat7每次连接都会修改jsessionid的情况,有人知道更详细的细节么? 我很疑惑的是,如果每次都修改,岂不是意味着一些并发连接可能失效了?
比如,我先是一个xhr异步请求,服务端刚生成一个新jsessionid,但是还没有返回客户端时,我又是一个xhr请求过去.此时我带的是旧的jsessionid,岂不是就会出问题?




。。。你想说什么,能把话理顺了吗


汗, .
"整个攻击过程最难点在于如何获取用户的jsessionid" 意味着攻击的前提是你有办法可以监听对方的浏览器或者网络.很显然,这时候你面对的敌人不只是对方,还有对方的系统安全防护或者网络安全防护.成本会大很多.

但是另外一个方案是,你发给对方一个url(注意,这个url是经过你精心构造的,你将一个由你访问网站产生的jsessionid以 url重写的方式附加到你发给对方的url上.比如:www.x.com/login;jsessionid=xxxxxxxxxx?x=money).再找一些理由让对方在你给的url里进行登录.这样,对方访问过去的时候就已经附带上jsessionid了,此时如果服务端在login成功后,不去重新生成jsessionid,那么原先的那个jsessionid就会被认证.此时,你以及对方就都可以使用同一个jsessionid做登录后的操作了.
很显然,这种攻击方式,你除了需要找个有诱惑的理由去引诱对方去使用你给的url登录,其他的完全没有什么技术含量,而且对方的所有系统安全手段也完全无效. 攻击成本会低很多.这也是所谓的"社会工程学攻击"的一种.

总结一下,实施这中攻击的条件:
1.匿名访问服务器时,服务器也会分配jsessionid.
2.服务器端支持识别jsessionid的url重写.
3.服务器端在认证后没有重新生成jsessionid.
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics