`

会话劫持: Session劫持与Session-ID的安全长度

    博客分类:
  • web
 
阅读更多

http://ourjs.com/detail/54f3f638232227083e00003b

 

Session劫持

Session劫持从Web Session控制机制处发动攻击,通常是对Session令牌管理的剥夺。

因为HTTP通信使用许多不同的TCP连接,Web服务器需要一个方法来识别每个用户的连接。最有用的方法是当一个客户端成功认证后,该Web服务器向该客户端浏览器发送令牌。Session令牌通常由可变长度的字符串组成,并且它可以以不同的方式存储,如在URL中,在HTTP请求的cookie报头中(request header),或在HTTP请求中的其报头,或者在HTTP请求的主体中。

Session劫持攻击通过窃取或预测有效的Session令牌来获得未经授权Web服务器访问权限。

示例

例1  Session 代理人劫持

在这个例子中,我们可以看到,第一个攻击者使用代理来捕捉一个有效的Session令牌称为“SessionID”,然后他使用该有效Session令牌获得未经授权的Web服务器访问权限。

例2   跨站点脚本攻击

攻击者可以通过在客户端上运行恶意代码来获取Session令牌。这个例子说明了如何攻击者可以利用XSS攻击窃取Session令牌。如果攻击者发送恶意的JavaScript代码到受害人访问网站中或当受害者点击链接时,JavaScript将运行攻击者的注入脚本。如图中所示,它可以显示当前Sessioncookie的值;使用相同的技术则可能创建将此Session发送给攻击者。

<SCRIPT>alert(document.cookie);</SCRIPT>

注* 防止Cookie被盗请参见: 提高NodeJS网站的安全性:Web服务器防黑客攻击技巧

Session ID的安全长度

Session ID应至少为128位长,以防止蛮力Session猜测攻击。

在WebLogic中部署中描述到应指定至少给Session ID指定128位的长度。较短的Session ID使应用程序容易遭受蛮力Session猜测攻击。如果攻击者猜测到一个身份验证的用户Session ID,他可以接管用户的Session。

猜测有效Session ID所需时间的预测公式:

(2^B + 1) / (2 * A * S)

其中:

  • B是Session ID的位数
  • A是攻击者可以每秒尝试数
  • S是有效的Session ID数量,及在任何给定时间内被猜到的数目

如果攻击者操纵数千个僵尸计算机,他们可以尝试每秒猜测数万个SessionID这是合理的。如果该网站的人气很高,访问量很大,这种高流量的猜测可能在一段时间内被忽视。

上有效的Session ID是提供给被猜出的数量的下限是有活性的网站上,在任何给定时刻的用户的人数。然而,放弃自己的Session,而不会记录任何用户将增加这个数字。 (这是有一个短期活动Session超时许多很好的理由之一。)

有64位的Session ID。对于一个大型网站,假设攻击者可以每秒尝试10000次的猜测,并且当前存在10000个有效的Session ID。基于这些假设,攻击者成功地猜测到有效Session ID的时间将小于4分钟。

现在假设一个128位Session ID。同样是一个访问量非常大的网站,攻击者可能会尝试每秒10000次的猜测与可供猜到10000个有效的Session ID。根据这些假设,攻击者在预期的时间内成功地猜出一个合法的Session ID将大于292年。

整理自:

Insufficient Session-ID Length

Session hijacking attack

分享到:
评论

相关推荐

    获取SessionID

    3. **安全性**:SessionID通常包含在Cookie或URL中,通过加密等手段提高安全性,防止会话被劫持。 #### 三、获取SessionID的方法 根据给定的部分内容,我们可以看到一个简单的Java示例代码片段,该片段展示了如何...

    跨站实现HTTP会话劫持

    攻击者通过上述步骤成功获取了受害者的Session ID,并利用这个Session ID登录到了目标网站,从而实现了对受害者的会话劫持。 #### 防范措施 为了防止HTTP会话劫持,开发者应该采取以下措施加强安全防护: 1. **...

    sessionsession

    - 会话劫持:由于Session ID可能被截取,所以需要采取措施防止会话劫持,如使用SSL加密传输,定期更换Session ID。 - 跨站请求伪造(CSRF):Session也需防范这种攻击,通常通过验证Token来确保请求来源的合法性。...

    php5的session详解

    - **定期更新 Session ID**:通过定期重新生成 Session ID 可以降低会话劫持的风险。 - **限制 Session 有效期**:设定合理的 Session 超时时间,确保长时间未操作的用户会话自动结束。 - **Cookie 的安全属性**:...

    servlet session 购物车

    - 会话劫持:如果Session ID被恶意获取,攻击者可能冒充用户进行操作,因此需要采取安全措施,如使用HTTPS、定期更换Session ID等。 - 会话过期:用户长时间未操作,Session可能会过期,导致购物车数据丢失,需要...

    spring security 3.x session-management 会话管理失效

    - 会话并发控制限制了同一用户在同一时间可以活跃的会话数量,防止会话劫持。Spring Security提供了一种基于票证的并发控制,如果发现用户有新的登录尝试,会强制旧会话注销。 5. **权限控制** - Spring Security...

    php和session实现简单的登录记忆--改进版

    - 避免在URL中直接传递Session ID,以防止Session劫持。 - 应定期清理无活动的旧会话,避免内存泄漏。 综上所述,这个项目主要涵盖了PHP的Session管理,登录验证,以及如何利用Session实现登录记忆功能。通过对...

    TCP三次握手及会话劫持原理与实例

    会话劫持(Session Hijacking)是指攻击者通过某种方式获取到合法用户的会话信息(如会话ID),然后利用这些信息冒充合法用户,与目标服务器建立连接,从而达到攻击的目的。 #### 四、会话劫持的技术原理 1. **...

    011-Web安全基础7 - 会话管理漏洞.pptx

    这种漏洞让攻击者有机会通过获取用户的Session ID,伪装成合法用户,进行会话劫持,从而对用户的账号和数据造成威胁。本节我们将深入探讨会话管理漏洞的概念、危害以及防御策略。 **会话劫持的概念与原理** 会话...

    PHP100视频教程32:PHP5中Cookie与.Session详解.rar

    - 安全性:相比Cookie,Session数据存储在服务器,相对更安全,但Session劫持和 fixation攻击仍然是需要防范的风险。 三、Cookie与Session的区别与选择 1. 数据存储位置:Cookie存储在客户端,Session存储在...

    session的用法

    - **Session劫持**:攻击者通过获取用户的Session ID,可以冒充用户进行操作。防止方法包括使用HTTPS、定期更换Session ID、限制Session ID的有效时间等。 - **Session过期**:合理设置Session的超时时间,避免因...

    基于 Session ID 和 Session ticket 的会话恢复的抓包示例

    然而,这种基于Session ID的会话恢复存在一定的安全风险,比如Session ID可能被嗅探或窃取,导致会话劫持。 为了解决这些问题,SSL/TLS协议引入了Session ticket。Session ticket是一种加密的数据结构,由服务器...

    前端开源库-ks-session

    1. 安全性:通过使用加密和安全的会话ID,ks-session降低了会话被劫持的风险。 2. 自动过期:支持设置会话的过期时间,过期后会话自动失效,增强了安全性。 3. 数据存储:可以灵活选择存储会话数据的后端,如内存、...

    PHP中session全面教程.txt

    - **Session ID的安全**: 应该确保Session ID不被预测或猜测,避免会话劫持攻击。 - **Cookie的安全设置**: - `http_only`属性应设置为true,以防止JavaScript脚本访问Cookie。 - `secure`属性应设置为true,在...

    Session机制详解(jsp-servlet_技术)文.pdf

    3. 会话劫持:攻击者可以通过窃取用户的Session ID来冒充用户,因此需要对Session ID进行加密和安全传输。 4. 跨域问题:默认情况下,Session不支持跨不同域名的应用共享,除非有特殊配置。 七、跨应用程序的...

    Session Fixation Test:安全会话固定测试-开源

    会话固定攻击是一种网络安全性问题,攻击者通过在用户登录前预先设定一个已知的会话ID(Session ID),然后在用户登录后继续使用这个固定的会话ID,从而能够控制或劫持用户的会话。这种攻击方式可能导致敏感信息泄露...

    Session详解

    安全性方面,应防止会话劫持、CSRF攻击等威胁,确保会话ID的生成和传输足够安全。性能方面,服务器需要高效地管理和更新大量会话对象,避免资源浪费和性能瓶颈。 总之,Session机制是现代Web应用中不可或缺的部分,...

    PHP漏洞全解(七)-Session劫持整理.pdf

    首先,Session劫持是指攻击者通过获取用户的Session ID,进而劫持用户会话的过程。Session ID是用于识别用户身份的一个标识,通常由服务器生成并存储在用户的浏览器中。一旦攻击者获得了这个ID,就能模仿用户进行...

    session&cookie.zip

    但仍然需要注意防止Session劫持,例如通过嗅探Session ID来冒充用户身份。 - **应用场景**:除了Cookie能用到的地方,Session更适合处理需要长时间保持用户状态的场景,如在线购物、用户偏好设置等。 3. **Session...

Global site tag (gtag.js) - Google Analytics