`

安全测试 关于会话标识未更新的解决方法

 
阅读更多
最近本人搭了一个框架,用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过期 ;
注意:这段代码需要在页面的最后部分加上才可以,否则将报错。
0
3
分享到:
评论
1 楼 hovei 2013-01-24  
[b][/b][i][/i][u][/u]
引用
[img][/img][url][/url][flash=200,200][/flash]
[align=right][/align]

相关推荐

    测试覆盖率

    例如,如果大部分龄期较长的、未解决的缺陷处于有待确认的状态,则可能表明没有充足的资源应用于再次测试工作。 缺陷趋势报告  趋势报告确定缺陷率并提供了一个出色的测试状态视图。在测试生命周期中,缺陷趋势...

    您可能没有权限使用网络资源。请与这台服务器的管理员联系以查明您是否有访问权限。拒绝访问解决方法

    解决:本地策略 -&gt; 安全选项 -&gt; "网络访问:本地帐户的共享和安全模式",修改为"经典-本地用户以自己的身份验证" 4,系统漏洞修补软件修改了安全策略。 症状:在“网上邻居”中可以看到对方的计算机,但是访问共享...

    citrix 中文管理操作手册

    选择资源类型和发布方法 40 定位要发布的应用程序 41 验证已发布应用程序的命令行参数 42 在内容与已发布应用程序之间建立信任关系 42 禁用所选已发布应用程序的命令行验证 42 禁用服务器上所有已发布应用程序的...

    超级有影响力霸气的Java面试题大全文档

    java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 9、说出Servlet的生命周期,并说出Servlet和CGI的区别。  Servlet被服务器实例化后,容器运行其init方法...

    Microsoft SQL Server 2005 Express Edition SP3

    3.3 SQL Server Express 联机丛书中包含关于操作系统支持的错误信息。 SQL Server Express 联机丛书中的“硬件和软件要求 (SQL Server Express)”主题中没有提供操作系统的精确列表。SQL Server Express 支持下列...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    SessionStorage 存储的数据只在会话期间有效,关闭浏览器则自动删除 Sqlite 一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中 W3C 万维网联盟,创建于1994年,是Web技术领域最具权威...

    JAVA面试题最全集

    在软件开发生命周期中的哪个阶段开始测试? 89.dotnet与J2EE的比较? 90.什么是ActiveX? 91.Java中IDL是什么? 92.ISO9000和CMM是什么?IS09000和CMM(软件能力成熟度模型)认证是国际上通用的软件质量评估方法.CMM的...

    IIS6.0 IIS,互联网信息服务

    对于服务器来说就特别重要,因为安全补丁关乎到系统安全,而微软网站经常发布最新的系统安全补丁,可以用系统自带的windows update程序随时更新。 2.iis安全设置之FTP目录的设定。FTP目录没有设置也容易被别人攻击,...

    java 面试题 总结

    java编译器要求方法必须声明抛出可能发生的非运行时异常,但是并不要求必须声明抛出未被捕获的运行时异常。 6、说出Servlet的生命周期,并说出Servlet和CGI的区别。 Servlet被服务器实例化后,容器运行其init方法,...

    PHP3程序设计

    16.2 XML解决方法 251 16.2.1 HTML和XML的差异 251 16.2.2 XML分析器的作用 252 16.3 XML核心 252 16.3.l 标识和文本 252 16.3.2 注解 256 16.3.3 总体文档结构 256 16.3.4 有效及形式好的文档 257 16.4 文档类型...

    Ubuntu权威指南(2/2)

    4.4 文件的安全保护机制 101 4.4.1 显示文件的访问权限 102 4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 ...

    Ubuntu权威指南(1/2)

    4.4 文件的安全保护机制 101 4.4.1 显示文件的访问权限 102 4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 ...

    windowsnt 技术内幕

    考试的费用问题 考前的自我调整 使用考试中心提供的考试工具 参加模拟测试 熟悉使用计算机进行考试 充分利用考试时间 考题的形式 理解多重选择题型 理解对错题题型 理解多重选择多重答案题型 理解基于解决方案型的...

    操作系统(内存管理)

    它要完成以下三件事:将分配程序标识为已经初始化,找到系统中最后一个有效内存地址,然后建立起指向我们管理的内存的指针。这三个变量都是全局变量: 清单 1. 我们的简单分配程序的全局变量 int has_...

    Toad 使用快速入门

    TOAD提供语法标识、错误标识和其他很多易于使用的功能,如在弹出窗口显示表名、列名和Oracle函数。和其他的 PL/SQL 编辑工具不同,TOAD 允许在一个文件中操作多个数据库对象,可以编译一个对象、编译多个对象、编译...

    网管教程 从入门到精通软件篇.txt

    如果在本次会话期间磁盘配置发生变化,为获得更新的扫描,必须先重新启动计算机,然后再次扫描磁盘。  bootcfg /list 列出引导列表中已有的条目。  bootcfg /disableredirect 在启动引导程序中禁用重定向。  ...

    Windows Sockets网络编程 可能是最清晰版本(Windows Sockets 2规范解释小组负责人亲自执笔。)总共4个包,part1

    2.3.3 会话层 2.3.4 传输层 2.3.5 网络层 2.3.6 数据链路层 2.3.7 物理层 2.4 模块化的层次框 2.5 服务和协议 2.6 协议和API 第3章 TCP/IP协议服务 3.1 什么是TCP/IP 3.2 TCP/IP的发展历史 3.3 传输服务 3.3.1 无...

    Windows Sockets网络编程 总计4个包,part2

    2.3.3 会话层 2.3.4 传输层 2.3.5 网络层 2.3.6 数据链路层 2.3.7 物理层 2.4 模块化的层次框 2.5 服务和协议 2.6 协议和API 第3章 TCP/IP协议服务 3.1 什么是TCP/IP 3.2 TCP/IP的发展历史 3.3 传输服务 3.3.1 无...

    windows实用dos命令大全

    不加/U,则为安全格式化,这时先建立一个镜象文件保存原来的FAT表和根目录,必要时可用UNFORRMAT恢复原来的数据。  (二)UNformAT恢复格式化命令  1.功能:对进行过格式化误操作丢失数据的磁盘进行恢复。  2....

Global site tag (gtag.js) - Google Analytics