渗透测试之利用Session进行攻击

认证与会话管理

1.认证和授权

​ 认证的目的是为了认出用户是谁。而授权的目的是为了决定用户能够做什么。

​ 当认证出现问题,系统的安全会直接受到威胁。认证的手段是多样的,认证实际上就是一个验证凭证的过程。

​ 单因素认证:只有一个凭证被用于认证。两个因素就是双因素认证。多因素认证的强度高于单因素认证,但是用户体验效果上多因素不占优势。

​ 密码是常见认证手段,密码强度是设计方案认证时一个需要考虑的问题。黑客密码爆破时会用“123456”去尝试所有的用户名。所以尽量使用复杂的密码。OWASP建议重要应用密码应该再8位以上,并且考虑双因素认证,区分大小写。

​ 密码加密算法一般为MD5或者SHA-1。这些算法是不可逆的,但是有些网站提供解密的功能,他们存有原字符串加密后的形式,并进行比较得出原字符串,并不可以逆向解密。所以开发人员进行md5加密时一般增加一段随机字符串来增加破解难度。

2.Session 与认证

​ 一般仅仅用于登录的过程。可以窃取用户的SessionID 来登录用户账户的攻击方式。

3.Session Fixation攻击

​ 会话固定攻击是利用应用系统在服务器的会话ID固定不变机制,借助他人用的相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会话来进行冒充。

​ 前提是SessionID放在URL中。

流程

​ 1.攻击者自己登录

​ 2.返回一个会话ID给攻击者

​ 3.构造一个链接给被攻击者

​ 4.点击该链接携带攻击者的会话ID和用户名密码正常登录,会话成功建立。

​ 5.攻击者用该会话的ID成功冒充并劫持了受害者的会话。

如何防御

​ 登录重建会话,每次登录后都重置会话。

4. Session 保持攻击

​ 只要用户一直在用网站,Session就不会失效,攻击者可以一直发起请求,让Session一直“活”着。

如何防御?

​ 常见的做法是 在一段时间后,强制销毁Cookie。

​ 当用户端发生变化时,重新建立Session。

5.单点登录(SSO)

​ 只需要登录一次,就可以访问其他相关应用。比如域名不同属于不同源的那么Cookie是不能带到别的域名下的。

​ 实现机制:单独开发一个SSO模块。用户访问app系统,会跳转到CAS server,即SSO登录系统。SSO系统也没有登录弹出登录页面,SSO系统确认后将登录状态写入SSO的Session,浏览器写入到SSO下的Cookie;

有登录弹出登录页面,SSO系统确认后将登录状态写入SSO的Session,浏览器写入到SSO下的Cookie;

​ SSO生成一个凭证,然后将凭证给app系统,访问app,向SSO验证凭证ST是否有效,验证成功后在域下创建Cookie。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值