web安全学习-攻击会话管理

先来说一下什么是会话管理?在绝大多数web应用程序中,会话管理机制是一个基本的安全组件。它帮助应用程序从大量不同的请求中确认特定的用户,并处理它收集的关于用户与应用程序交互状态的数据。会话管理在应用程序执行登陆功能时显得特别重要,因为它可在用户通过请求提交他们的证书后,持续向应用程序保证任何用户身份的真实性。

由于会话管理机制所发挥的关键作用,它们成为针对应用程序的恶意攻击的主要目标。如果攻击者能够破坏应用程序的会话管理,他就能轻易避开其实施的验证机制,不需要用户证书即可伪装成其他应用程序用户。

一.状态要求

HTTP协议没有状态,它基于一种基本的请求-响应模型,其中每对消息代表一个独立的事物。协议本身并无将某位用户提出的各种请求联系起来的机制,并将它们与web服务器收到的所有其他请求区分开来。

前期访问的都是一些静态页面,对于会话没有要求,但是现在不同,各种各样的功能出现在web应用程序,例如需要用户登陆,记住用户的信息,往购物车中添加商品。这些功能要求应用程序知道它收到的那些请求来自同一个用户。会话管理机制就是为了解决这种问题。

执行会话最简单的方式就是向每名用户发布一个唯一的会话令牌或标识符。在大多数情况下,应用程序使用HTTP cookie作为在服务器与客户端间传送这些会话令牌的传输机制。

会话管理机制中存在漏洞主要分为两类:

1)  会话令牌生成过程中的薄弱环节

2)  在整个生命周期过程中处理会话令牌薄弱环节

二. 会话令牌过程中的薄弱环节

1)  令牌有一定的含义,例如一些令牌是通过用户的用户名或电子邮件地址通过一种的模糊处理(例如十六进制编码)得到的,可以通过猜测得到用户的令牌

2)  令牌可预测性

一些会话令牌并不包含与某个特定用户有关的任何有意义的数据,但由于他们包含某种顺序或模式,允许攻击者通过几个令牌样本即可推断出应用程序最近发布的其他有效令牌,因此具有可预测性。可预测的会话令牌通常来自3个方面:隐含序列,时间依赖,生成的数字随机性不强。

三. 会话令牌处理中的薄弱环节

1)  在网络上泄露令牌

如果通过网络以非加密方式传送会话令牌,就会产生这方面的漏洞。

2)  在日志中泄露令牌

各种系统日志也常常将令牌泄露给未授权方。除了由于处在网络适当位置的窃听者以外,还有其他各种潜在的攻击者都能查阅这些日志。

3)  令牌-会话映射易受攻击

允许给同一个用户账户同事分配几个有效的令牌。

4)  会话终止易受攻击

一些应用程序并不执行退出功能,这就给截获应用程序的令牌提供了可能。

5)  客户端暴露在令牌劫持风险之中

6)  宽泛的cookie范围

把cookie的作用于设置的过大或者不在正确的域中。

四. 保证会话管理的安全

1)  生成强大的令牌:使用数据极其庞大的一组可能值,包含强大的伪随机源,确保令牌以无法预测的方式平均分布在可能值范围内。

2)  在整个生命周期保障令牌的安全:令牌只能通过HTTPS传送,绝不能在URL中传送令牌,执行退出功能,会话处于非活动状态一段时间后,应执行会话终止;应防止并行登陆;应尽可能限定应用程序胡话和cookie的域和路径范围。

原文地址:https://www.cnblogs.com/yonghegn/p/9408727.html

时间: 2024-10-13 04:40:50

web安全学习-攻击会话管理的相关文章

2014-07-09 Java Web的学习(5)-----会话管理(Cookie和Session)

1.什么是会话 会话,牛津词典对其的解释是进行某活动连续的一段时间.从不同的层面看待会话,它有着类似但不全然相同的含义.比如,在web应用的用户看来,他打开浏览器访问一个电子商务网站,登录.并完成购物直到关闭浏览器,这是一个会话.而在web应用的开发者开来,用户登录时我需要创建一个数据结构以存储用户的登录信息,这个结构也叫做会话.因此在谈论会话的时候要注意上下文环境.而本文谈论的是一种基于HTTP协议的用以增强web应用能力的机制或者说一种方案,它不是单指某种特定的动态页面技术,而这种能力就是保

Web安全开发指南--会话管理

1.会话管理 3.1.会话管理安全规则 1 避免在URL携带session id. 2 使用SSL加密通道来传输cookie. 3 避免在错误信息和调试日志中记录session id. 4 使用框架自带的或业界公认的安全函数来生成session id(参考附录11.4). 5 开发或引入无状态的模块(比如shipin7 nodejs和视频留言模块)时,应与web模块的session机制结合,防止越权或无授权攻击. 6 当使用加密通道SSL/TLS传输cookie时,为其设置“secure”属性.

黑客攻防技术宝典web实战篇:攻击会话管理习题

猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. 登录一个应用程序后,服务器建立以下 cookie:Set-cookie: sessid=amltMjM6MTI0MToxMTk0ODcwODYz;一个小时后,再次登录并得到以下 cookie:Set-cookie: sessid=amltMjM6MTI0MToxMTk0ODc1MTMy;通过这些 cookie,可以得出什么推论? sessid cookie 包含一个 Base64 编码的

Web安全测试指南--会话管理

会话复杂度: 编号 Web_ Sess_01 用例名称 会话复杂度测试 用例描述 测试目标系统产生的session id是否具备足够的复杂度. 严重级别 高 前置条件 1.  目标系统使用登录会话机制. 2.  目标web应用可访问,业务正常运行. 3.  已安装http拦截代理(burp.fiddler或webscarab均可). 执行步骤 1.  开启burp,设置对http请求进行拦截,并在浏览器中配置代理. 2.  打开目标系统的登录页面,使用正确的用户名和密码提交登录,比如: POST

(转)web会话管理方式

阅读目录 1. 基于server端session的管理 2. cookie-based的管理方式 3. token-based的管理方式 4. 安全问题 5. 总结 http是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的.当然它知道是哪个客户端地址发过来的,但是对于我们的应用来说,我们是靠用户来管理,而不是靠客户端.所以对我们的应用而言,它是需要有状态管理的,以便服务端能够准确的知道http请求是哪个用户发起的,从而判断他是否有权限继续这个请求.这

http 3种web会话管理方式

http是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的.当然它知道是哪个客户端地址发过来的,但是对于我们的应用来说,我们是靠用户来管理,而不是靠客户端.所以对我们的应用而言,它是需要有状态管理的,以便服务端能够准确的知道http请求是哪个用户发起的,从而判断他是否有权限继续这个请求.这个过程就是常说的会话管理.它也可以简单理解为一个用户从登录到退出应用的一段期间.本文总结了3种常见的实现web应用会话管理的方式: 1)基于server端sessio

3种 web 会话管理的方式

转自:http://www.yidianzixun.com/n/0F1GYAsQ?s=8&appid=xiaomi&ver=3.7.8&utk=4lxc4q7c&from=timeline http是无状态的,一次请求结束,连接断开,下次服务器再收到请求,它就不知道这个请求是哪个用户发过来的.当然它知道是哪个客户端地址发过来的,但是对于我们的应用来说,我们是靠用户来管理,而不是靠客户端.所以对我们的应用而言,它是需要有状态管理的,以便服务端能够准确的知道http请求是哪个用

【网络安全】——服务端安全(注入攻击、认证与会话管理和访问控制、访问控制、加密算法与随机数、Web框架安全、应用层拒绝服务攻击DDOS等)

这一篇博客记录的是服务端安全应用安全的知识,学习内容来自<白帽子讲Web安全>. ? 承接自上一篇客户端安全之后,包括注入攻击.认证与会话管理和访问控制.访问控制.加密算法与随机数.Web框架安全.应用层拒绝服务攻击DDOS.Web Server安全等方面. @ 目录 注入攻击 SQL注入 盲注 Timing Attack 数据库攻击技巧 常见的攻击机巧 命令执行 攻击存储过程 编码问题 SQL Column Truncation 正确地防御SQL注入 其他注入攻击 文件上传漏洞 文件上传漏洞

《白帽子讲WEB安全》学习笔记之第9章 认证与会话管理

第9章 认证与会话管理 9.1 who am i? 认证包含了身份和身份认证两层含义. q  身份-我是谁? q  身份认证-这就是我. 认证的目的就是为了认出用户是谁?而授权的目的是为了决定用户能够做什么. 认证实际上就是一个验证凭证的过程. 9.2 密码的那些事儿 一般为了安全与用户体验性,采用"双因素"验证的比较多,例如支付中的密码和手机动态密钥. 我认为在用户注册的时候应该检测一下用户使用的是否是弱密码.这就代表着我们需要在系统中建立一套"弱密码表",弱密码