认证和会话管理漏洞

失效的身份认证和会话管理

  • 认证和授权

- 认证的目的是为了认出用户是谁, 授权的目的是为了决定用户能够做什么
- 认证是一个验证凭据的过程。
- 认证分类: 单因素认证& 双因素认证& 多因素认证
- 认证手段: 密码、动态口令、手机验证、数字证书、单点登录(openid)

  • 会话管理

- 认证成功后, 认证凭证的管理方式
- 会话管理方式: cookie based 方式、服务器端session 方式

1 cookie-based的管理方式

用户登录成功之后, 把登录凭证写到cookie里面, 给cookie设置有效期,后续请求直接验证存有登录凭证的cookie是否存在以及凭证是否有效,即可判断用户的登录状态

 

 

2 基于server 端的服务端session的管理

服务端Session技术是用户第一次访问时,服务器就会创建的对象,并分配session 存储空间。服务器为每一个session 都分配一个唯一的sessionid, 以保证每个用户都有一个不同的

session对象。认证成功过,认证凭证计入到session存储空间中。

 

身份认证和会话管理常见安全问题

  • 账号或密码未做限制, 可暴力猜解。没有限制登录次数,加验证码
  • 弱密码策略, 允许简单密码存在, 如123456 , admin
  • 密码找回方案存在缺陷, 如: 密保问题设计
  • 密码更改方案存在缺陷
  • cookie 作为认证凭证, 携带敏感信息
  • Sessionid 没有时效限制, 特别是单点登录令牌在用户注销时没有失效
  • 成功注册后, 会话ID 没有轮转。
  • sessionid 和其他认证凭据使用未加密连接传输。
  • 混用个性化数据的身份验证数据,个性化数据适于永久的cookie,而身份验证cookie不应是永久的

认证会话管理洞防御

  • 设置验证码, 防止暴力猜解
  • 强制复杂密码策略, 不允许默认弱密码存在
  • 身份认证采用多因素认证
  • 认证cookie 中,加入两个时间, 一个是“ 即使一直在活动,也要失效" 的时间,一个是“ 长时间不活动的失效时间"
  • cookie设置http only, 防止脚本读取
  • Cookie 设置Secure, 只允许https传输
  • 网络传递认证凭证采用SSL 加密

实验:利用永久cookie重放http 会话

实验环境:asp编写的web 站点

实验案例:利用burp嗅探该站点认证cookie特点,利用burp或桂林老兵cookie 欺骗工具,进行会话重放。

  1. 登录网站后台,用burp工具抓包

 

user=admin&pass=admin&XuasYzm=19909&B1.x=42&B1.y=16

在这可以看到我们在网页后台输入的用户名、密码以及验证码。以及cookie中包含的adminpass,adminuser等信息。

复制以下信息

adminpass=21232f297a57a5a743894a0e4a801fc3; adminuser=admin

2.退出系统

3. 重新回到网页登录界面并使用burp抓包

将cookie信息中的adminpass、adminuser内容替换为

adminpass=21232f297a57a5a743894a0e4a801fc3; adminuser=admin 

可以实现登录

posted @ 2020-03-07 19:06  小炮无邪  阅读(1637)  评论(0编辑  收藏  举报