最近本人搭了一个框架,用IBM Rational AppScan扫描出其中的一个安全漏洞,描述如下:[1 / 2] 会话标识未更新
严重性: 高
测试类型: 应用程序
有漏洞的URL: ***
修复任务: 不要接受外部创建的会话标识.
会话标识未更新
应用程序
WASC 威胁分类
授权类型:会话定置
http://www.webappsec.org/projects/threat/classes/session_fixation.shtml
CVE 引用
不适用
安全风险
可能会窃取或操纵客户会话和cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户
身份查看或变更用户记录以及执行事务
可能原因
Web 应用程序编程或配置不安全
技术描述
根据WASC:
“会话固定”是一种攻击技术,会强制用户的会话标识变成显式值。
固定会话标识值的技术有许多种,会随着目标Web 站点的功能而不同。从利用“跨站点脚本编
制”到向Web 站点密集发出先前生成的HTTP 请求,都在这些技术范围内。用户的会话标识固
定之后,攻击者会等待用户登录,然后利用预定义的会话标识值来假定用户的联机身份。一般
而言,对于标识值的会话管理系统有两种类型。第一种类型是“宽容”系统,可让Web 浏览器指
定任何标识。第二种类型是“严格”系统,只接受服务器端生成的值。当使用宽容系统时,不需
要联系Web 站点,便可以维护任何会话标识。在严格系统中,攻击者需要维护“陷阱会话”并且
必须定期联系Web 站点,才能防止闲置超时。
对于会话固定,倘若没有活动保护,使用会话来识别已认证的用户的任何Web 站点都可能受
到攻击。使用会话标识的Web 站点通常都是基于cookie 的站点,但也会使用URL 和隐藏的表
单字段。不幸的是,基于cookie 的会话最容易受到攻击。
目前已识别的大多数攻击方法都是针对cookie 的固定。
相对于在用户登录Web 站点之后,再窃取用户的会话标识,会话固定提供的机会多得多。
在用户登录之前,攻击的活动部分便已启动。
会话固定攻击过程通常由三个步骤组成:
1) 安装会话
攻击者针对目标Web 站点设下“陷阱会话”,并获取这个会话的标识,攻击者也可以选择攻击中
所用的任意会话标识。在某些情况下,必须反复联系Web 站点,才能维护确定好的陷阱会话
值。
2) 固定会话
攻击者将陷阱会话值引进用户的浏览器中,固定用户的会话标识。
3) 进入会话
用户登录目标Web 站点之后,当使用固定会话标识值时,攻击者便可加以接管。”
----------------------------------------------
如果会话管理系统接受URL 参数形式的会话标识,下列请求便可以强迫会话标识采用URL 参
数值。
代码片段:
http://example/login.php?PHPSESSID=1234
根据WASC:
2012/10/27 16:48:30 16/41
“利用客户端脚本发出新的会话标识cookie 值
-------------------------------------------------------------------------------------------
域中任何Web 站点的“跨站点脚本编制”漏洞都可用来修改当前cookie 值。代码片段:
http://example/<script>document.cookie="sessionid=1234;%20domain=.example.dom";</script>
另一个类似的示例(使用META 标记注入):
http://example/<meta%20http-equiv=Set-Cookie%20content="sessionid=1234;%
20domain=.example.dom">
利用HTTP 响应头发出cookie
-----------------------------------------------------------------------
攻击者强迫目标Web 站点或域中的任何其他站点发出会话标识cookie。许多方法都可以做到
这一点:
- 闯进域中的某Web 服务器(例如:维护不良的WAP 服务器)- 毒害某用户的DNS 服务器,
实质将攻击者的Web 服务器添加到域中 - 在域内安装恶意的Web 服务器(例如:在Windows
2000 域的工作站上,所有工作站也都在该DNS 域中)
- 利用HTTP 响应分割攻击”----------------------------------------------
登录过程前后会话标识的比较,显示它们并未更新,这表示有可能伪装用户。初步得知会话标
识值后,远程攻击者有可能得以充当已登录的合法用户。
利用“跨站点脚本编制”漏洞可以获取会话标识值,导致受害者的浏览器在联系易受攻击的站点
时使用预定的会话标识;启用“固定会话”也可以获取会话标识值,导致站点在受害者的浏览器
中显示预定的会话标识。
一般修订建议
始终生成新的会话,供用户成功认证时登录。
防止用户操纵会话标识。
请勿接受用户浏览器登录时所提供的会话标识
经过网上查找一番,给出解决办法:
登陆界面和登陆成功的界面一致时, 修改后台逻辑,在验证登陆逻辑的时候,先强制让当前session过期,然后用新的session存储信息;
登陆界面和登陆成功的界面不一致时 在登陆界面后增加下面一段代码,强制让系统session过期。
request.getSession().invalidate();//清空session
Cookie cookie = request.getCookies()[0];//获取cookie
cookie.setMaxAge(0);//让cookie过期 ;
注意:这段代码需要在页面的最后部分加上才可以,否则将报错。
分享到:
相关推荐
通过阅读这两个资源,你应该能够深入理解Struts2中会话管理的机制,并找到合适的方法来解决“未更新会话标识”的问题,从而提升你的Web应用的安全性和用户体验。在实际开发中,还应结合最佳实践,如定期清理无用的...
本文档是对 EMA 服务管理平台二期扩容安全验收漏洞修复总结的总结报告,涵盖了 WEB 安全、SQL 注入、盲注、会话标识未更新、已解密登录请求等多个安全验证漏洞的修复总结。 WEB 安全 WEB 安全是指保护 WEB 应用...
本文将对SQL注入、会话标识未更新以及已解密登录请求这三种常见的安全漏洞进行深入探讨,并提出相应的修复策略。 1. WEB安全介绍 Web安全主要关注的是防止非法访问、数据泄露、恶意攻击等威胁。它涉及到多个层面,...
安全测试是确保软件系统在设计、开发和运行过程中能够抵御潜在威胁的重要环节。它涵盖了多个层面,包括操作系统安全、数据库安全、...同时,随着技术的发展和威胁的演变,安全测试也需要不断更新和完善其方法和策略。
综上所述,Web应用程序测试不仅包括传统的功能测试,还涵盖了界面测试、性能测试、兼容性测试、安全测试等多个方面。通过采用合适的测试方法和技术,可以有效地提高Web应用的质量和用户体验。希望本文的内容能够帮助...
4. 会话标识未更新: 登录后应销毁旧的会话并创建新的会话标识符,防止会话劫持。在Java中,可以通过`request.getSession().invalidate()`清空Session,然后创建新Session。 5. 跨站点请求伪造(CSRF): 防止CSRF...
此安全测试报告揭示了一系列重要的安全问题,这些问题如果得不到及时解决,可能会对Web应用程序的安全性造成严重影响。针对报告中提到的每个问题,开发团队都应该采取相应的措施来修复这些漏洞,例如加强输入验证、...
总的来说,这个"微信小程序会话服务nodejs版"提供了一种有效的方法,解决了本地开发环境下微信小程序的登录验证问题,使开发者能够在无需真实服务器的情况下,顺畅地进行调试和测试。通过Node.js和MongoDB的结合,...
4. **安全审计与测试**:定期进行安全审计和渗透测试,及时发现并修复安全漏洞。 #### 二、安全编程技术 本书着重介绍了几种关键的安全编程技术,它们对于提高软件安全性至关重要: 1. **输入验证**:确保所有...
8. **代码审计和更新**:定期审查代码,查找潜在的安全漏洞。使用最新的PHP版本,及时修复已知的安全问题。遵循最佳实践,如OWASP(开放网络应用安全项目)的安全编码指南。 9. **加密与哈希**:对敏感数据如密码...
5. 认证与会话管理:学习如何破解弱密码策略,以及如何篡改或复制有效的会话标识,理解会话固定和会话劫持的风险。 6. 不安全的直接对象引用:攻击者可能通过直接访问内部系统对象来绕过权限控制。WebGoat会教你...
性能测试资料 在性能测试中,cookie 和 session 机制是两种常用的状态管理机制,它们之间存在着紧密的联系和区别。下面是对 cookie 和 session 机制的详细介绍: 一、cookie 机制 cookie 机制是一种在客户端保持...
系统接收阶段要进行安全测试;系统部署、维护和更新阶段则需要持续监控和更新安全措施。 在软件开发和应用中,遵循一些核心安全原则:如标识和鉴别技术,用于验证用户身份;访问控制是限制资源访问的关键,常见的有...
在微服务架构中,安全是至关重要的,因为它涉及到用户的个人信息保护和系统的整体稳定性。"云冲印"案例中提到的问题暴露了几个关键的安全隐患: ...同时,良好的编码习惯和安全测试机制也是保障系统安全的重要环节。
LoadRunner的分析能力相当强大,能够跨多个测试会话进行数据分析,提供深入的性能指标。 LoadRunner支持多种协议,如HTTP/HTTPS、FTP、DNS等,它能够模拟并记录这些协议下的用户行为。对于选择合适的协议,对于确保...
1. 如Spring Security、Apache Shiro等框架,为开发人员提供了一套完整的安全解决方案。 七、安全意识教育 1. 提高用户和开发团队的安全意识,了解常见的攻击手段和防范措施。 以上内容只是Web安全领域的冰山一角...