第7章 攻击会话管理

  • 7.1 状态要求
  • 7.2 会话令牌生成过程中的薄弱环节
    • 7.2.1 令牌有一定含义
    • 7.2.2 令牌可预测
    • 7.2.3 加密令牌
  • 7.3 会话令牌处理过程中的薄弱环节
    • 7.3.1 在网络上泄露令牌
    • 7.3.2 在日志中泄露令牌
    • 7.3.3 令牌-会话映射易受攻击
    • 7.3.4 会话终止易受攻击
    • 7.3.5 客户端暴露在令牌劫持风险之中
    • 7.3.6 宽泛的cookie范围
  • 7.4 保障会话管理的安全
    • 7.4.1 生成强大令牌
    • 7.4.2 在整个生命周期中保障令牌的完全
    • 7.4.3 日志、监控与警报
  • 7.5 小结
  • 7.6 问题

会话管理机制是一个基本的安全组件,它帮助应用程序从大量不通的请求中确认特定的用户,并处理它收集的关于用户与应用程序交互状态的数据。它可在用户通过请求提交他们的证书后,持续向应用程序保证特定用户身份的真实性

7.1 状态要求

一旦用户通过验证,应用程序就会为他建立一个会话,把所有属于这个会话的请求当做该用户提出的请求处理。
执行会话最简单,最常见的方法就是向每一名用户发布一个唯一的会话令牌或标识符。用户在随后向应用程序提出的每一个请求中提交这个令牌,帮助应用程序在当前请求与前面提出的请求之间建立关联。
大多数情况下,应用程序使用HTTP cookie作为在服务器与客户端间传送这些会话令牌的传输机制。

攻击会话机制的主要目标是以某种方式劫持一名合法用户的会话,由此伪装成这名用户。会话管理机制中存在的漏洞主要分为两类:
1.会话令牌生成过程中的薄弱环节
2.在整个生命周期过程中处理会话令牌的薄弱环节

会话替代方案

  • HTTP验证
  • 无会话状态机制

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

7.2.1 令牌有一定含义

包含有含义数据的令牌通常表现出某种结构,也就是说,他们由几种成分组成,通常以分隔符隔开,攻击者可分别提取并分析这些成分,以了解它们的功能和生成方法。

7.2.2 令牌可预测

一些会话令牌并不包含与某个特定用户有关的任何有意义的数据,但由于它们包含某种顺序或模式,允许攻击者通过几个令牌样本即可推断出应用程序最近发布的其他有效令牌,因此具有可预测性。

  1. 隐含序列
  2. 时间依赖
  3. 生成的数字随机性不强

7.2.3 加密令牌

  1. ECB加密
  2. CBC加密

7.3 会话令牌处理过程中的薄弱环节

7.3.1 在网络上泄露令牌

如果网络以非加密方式传送会话令牌,攻击者可以在网络的适当伪装窃取令牌并伪装成合法用户。

7.3.2 在日志中泄露令牌

当应用程序使用URL查询字符串传输令牌时,会将令牌暴露在各种网络日志中,易被攻击者窃取。

7.3.3 令牌-会话映射易受攻击

  • 应用程序允许并行会话
  • 用户每次登录,都收到相同的令牌

7.3.4 会话终止易受攻击

尽可能缩短一个会话的寿命可降低攻击者截获,猜测或滥用有效会话令牌的可能性。
一些应用程序并不实施有效的会话终止功能,会话一旦建立,它在收到最后请求后 的许多天内任然有效,直至服务器最终将其清除。

  • 应用程序不执行退出功能
  • 退出功能不能帮助服务器终止会话
  • “退出”功能由客户端脚本完成

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

  • XSS
  • CSRF

7.3.6 宽泛的cookie范围

  • cookie域限制
  • cookie路径限制

7.4 保障会话管理的安全

7.4.1 生成强大令牌

服务器用来定位处理用户请求的相关会话对象的标识符外,令牌中不应包含其他任何内容,不应含有意义或采用结构。所有有关于会话所有者与状态的数据都应保存在与会话令牌对应的服务器会话对象中。

生成可靠令牌的几种思路:

  • 选择稳定可靠的随机源
  • 以生成令牌请求的一些信息作为熵源
  • 使用是的的散列算法进行处理(如SHA-256)

7.4.2 在整个生命周期中保障令牌的完全

  • 令牌只能通过HTTPS传输
  • 绝不能在URL中传送会话令牌
  • 总是执行退出功能
  • 会话处于非活动状态一段时间后,应执行会话终止
  • 防止并行登录
  • 严格保护应用程序中任何可以查看会话令牌的管理或诊断功能
  • 尽可能的限定程序会话cookie的域和路径范围
  • 严格审查程序代码库,防止XSS
  • 不应接受用户提交,但服务器并不认可的任意令牌
  • 在执行转账之类的重要操作之前,要进行两步确认或重新验证
  • 不完全依赖HTTP cookie传输会话令牌
  • 成功验证后应总是建立一个新的会话,以避免会话固定攻击的影响
  • 每页面令牌

7.4.3 日志、监控与警报

  • 应用程序应监控包含无效令牌的请求
  • 收到大量包含无效令牌的请求时将其来源IP屏蔽一段时间
  • 保留详细的日志,并向管理员发出警报
  • 向用户警告与会话有关的反常事件
  • 反应性会话终止

7.5 小结

对于攻击者而言,进入其他用户的会话当然不错,但劫持管理员的会话会更好,因为这样往往能够攻破整个应用程序。

7.6 问题

黑客攻防技术宝典(七)相关推荐

  1. 热评一箩筐——《黑客攻防技术宝典》

    < 黑客攻防技术宝典: Web实战篇 > 自 8 月初上市,将近两个月共计销售 2500 多册(在今年金融危机这个大环境下,能有这样的销量还是相当不错的). 下面是我们收集的读者对这本书的 ...

  2. 跟安全技术大师学习黑客攻防技术 ——《黑客攻防技术宝典:web实战篇》

    跟安全技术大师学习黑客攻防技术 --<黑客攻防技术宝典: web 实战篇> 随着网络技术的快速发展以及网络带宽的不断扩张, Web 应用程序几乎无处不在,渗透到社会的经济.文化.娱乐等各个 ...

  3. 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序

    读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...

  4. 《黑客攻防技术宝典:Web实战篇》习题答案(一)

    译者按:以下为<黑客攻防技术宝典:Web实战篇>一书第二版中的习题答案,特在此推出.如果读者发现任何问题,请与本人联系.英文答案请见:The Web Application Hacker' ...

  5. 《黑客攻防技术宝典Web实战篇》.Dafydd.Stuttard.第2版中文高清版pdf

    下载地址:网盘下载 内容简介 编辑 <黑客攻防技术宝典(Web实战篇第2版)>从介绍当前Web应用程序安全概况开始,重点讨论渗透测试时使用的详细步骤和技巧,最后总结书中涵盖的主题.每章后还 ...

  6. 黑客攻防技术宝典web实战篇:核心防御机制习题

    猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 黑客攻防技术宝典web实战篇是一本非常不错的书,它的著作人之一是burpsuite的作者,课后的习题值得关注 ...

  7. 全面分析Web应用程序安全漏洞——《黑客攻防技术宝典:web实战篇》

    媒体评论 "想成为 Web 安全高手吗?读这本书吧,你一定不会失望!" --Amazon.com "没有空洞的理论和概念,也没有深奥的行话,除了实战经验,还是实战经验-- ...

  8. 黑客攻防技术宝典Web实战篇 第2版 pdf

    下载地址:网盘下载 内容简介  · · · · · · 越来越多的关键应用现在已经迁移到网站上,这些Web应用的安全已经成为各机构的重要挑战.知己知彼,方能百战不殆.只有了解Web应用程序中存在的可被 ...

  9. 黑客攻防技术宝典:Web实战篇(第2版)与第1版的区别

    第1版出版4年以来,许多事情发生了改变,而许多事情仍保持原状.当然,新技术继续高速发展,这引发了各种新型漏洞和攻击.同时,黑客们还开发出了新的攻击技术,设计了利用旧有漏洞的新方法.但是,这些技术或人为 ...

最新文章

  1. 机器学习的12大经验总结
  2. WebService简单开发 apache-cxf-3.1.6环境配置
  3. pthon3精要(12)-扩展序列解包
  4. 新装的linux系统,用SSH连接出现乱码怎么办?附改名虚拟机文件方法
  5. 精选论文集|Transformer在视觉领域中的应用
  6. 计算机视觉专业要学什么课程,[08本]“计算机视觉基础”课程介绍和课件
  7. zynq7020安装linux图形界面,ZYNQ开发板的NFS文件系统安装 - ZYNQ7020学习
  8. C++类所占大小的问题
  9. 2.java运算符与逻辑控制
  10. Bailian2677 Bailian3865 肿瘤检测【基础】
  11. 国外大神一张图学会python-没有接触过编程Python难学吗?
  12. java 并发编程实战代码_「Java并发编程实战」对象的组合
  13. python小飞机程序
  14. linux libxml2编译,libxml2 ARM 交叉编译
  15. 存储器容量的扩展 —— 位/字扩展
  16. ZYNQ 实现IEEE1588方法
  17. unity 摄像头跟着鼠标移动_lwj_unity_模拟第一人称摄像机前后左右移动、摄像机随鼠标移动旋转、鼠标点击添加物体...
  18. BMVC 2020 Keynote 消除数据集偏见
  19. SDUT—Python程序设计实验四(字符串)
  20. INTERN: A New Learning Paradigm Towards General Vision

热门文章

  1. 小程序跳到h5页面_小程序如何跳转h5页面
  2. 蓝鲸RFID固定资产管理系统
  3. vue项目接入e2e自动化测试
  4. git如何新建分支进行开发
  5. 微信小程序获取当前系统时间以及判断周几
  6. .jar!/BOOT-INF/classes!/ jar包无法重启了,求大神帮忙解答,谢谢!
  7. java中文件加锁机制
  8. lenovo电脑的麦克风没有声音?声音小?甚至有杂音,无法聊天?
  9. mysql索引原理记录
  10. 先验分布与后验分布,认真看看这篇