会话标识未更新
严重性: 高
类型: 应用程序级别测试
WASC 威胁分类: 授权类型:会话定置
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:
“利用客户端脚本发出新的会话标识 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 响应分割攻击”----------------------------------------------
登录过程前后会话标识的比较,显示它们并未更新,这表示有可能伪装用户。初步得知会话标识值后,远程攻击者有可能得以充当已登录的合法用户。
利用“跨站点脚本编制”漏洞可以获取会话标识值,导致受害者的浏览器在联系易受攻击的站点时使用预定的会话标识;启用“固定会话”也可以获取会话标识值,导致站点在受害者的浏览器中显示预定的会话标识。
受影响产品
该问题可能会影响各种类型的产品。
引用和相关链接
“基于 Web 的应用程序中的会话定置漏洞”,作者:Mitja Kolsek - Acros Security
PHP 手册、会话处理功能、会话与安全性
? Copyright IBM Corp. 2000, 2009. All Rights Reserved.