我有一个用java编写的Web应用程序。我们不在身份验证过程中使用会话。运行了应用程序扫描,发现我们有会话固定攻击的可能性。我想知道我们什么时候不使用会话,你如何修复或阻止会话固定?这就是FORTIFY扫描报告所说的
The following changes were applied to the original request:
• Added parameter 'Cookie_abcxyz.com-443' with the following value 'R3777273810'
• Removed cookie 'Cookie_abcxyz.com-443'
Request/Response:
GET / HTTP/1.1
Content-Length: 43
Accept: */*
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Win32)
Host: myportal.abcxyz.com
Cookie_abcxyz.com-443=R3777273810
HTTP/1.1 200 OK
Set-Cookie: Cookie_abcxyz.com-443=R3777273810; path=/
Content-Length: 11211
Date: Mon, 13 Feb 2012 17:08:14 GMT
Server: abcxyz
Cache-Control: no-cache
Content-type: text/html
答案 0 :(得分:11)
我们不在身份验证过程中使用会话....我很想知道 当我们不使用会话时
这是无关紧要的。我假设您使用服务器的会话管理。此错误报告表明您不验证会话标识符的查询字符串。
点击此处查看有关如何受到攻击的一些示例:Session Fixation
<强>更新强>
我怀疑你没有使用标准容器。我不能告诉你你实际上应该做什么,因为你没有放任何代码,但是从你的描述和你得到这样一个发现的报告的事实,问题是您允许URL重新编写,攻击者可以通过传入已知的会话ID来使用它来“窃取”会话。
从广义上讲,你应该做的是在用户登录后使当前会话无效并在现场创建一个新会话。结果,已经“stoled”的id无法重复使用。
由于您在帖子中提供的信息非常少,您应该花一些时间研究以下某些内容,以确定代码中存在问题的部分:
OWASP 1
OWASP 2
OWASP 3
Java Secure session SO
ASP as well
Interesting paper on session fixation
Some HTTP utilities from OWASP that you could perhaps use
Session fixation in Java
Secure Session Management