【发布时间】:2017-04-22 15:08:11
【问题描述】:
在研究了 rails 指南和其他一些资源之后,我想知道如何实际发生对用户会话的会话固定攻击。至少我怀疑它是否像指南中的简单 as depicted here 那样工作,攻击者...
1) ...通过登录创建一个有效的会话
2) ...使会话保持活动状态
3) ...然后强制用户使用他的会话ID,例如通过使用一些 XSS 漏洞
一切都好,但是......攻击者如何能够收集他自己的会话 ID 的值?默认情况下,cookie 在 Rails4+ 中是加密的。那么假设 我没有 可以访问secret_key_base 或用于生成加密和签名密钥的任何内容,作为攻击者该怎么办?据我了解,我无法在不使其失效的情况下篡改 cookie(签名错误),因此以某种方式将自行创建的 cookie 传递给可能的受害者也不是一种选择。
secu 指南是不是最新的,还是我在这里遗漏了一点?如果是后者的话……
a) [作为攻击者] 我如何读取加密的 cookie 信息
b) 一个漏洞如何才能让我 [攻击者] 将该会话 ID 注入另一个客户端上同样加密的 cookie 中?那会是XSS攻击吗?该指南指出,如果攻击者使用类似
的代码<script>document.cookie="_session_id=16d5b78abb28e3d6206b60f22a03c8d9";</script>
他也许能够修复那个会话。但同样,为什么 rails 会向客户端显示它是普通会话,使其可以通过客户端处理的 javascript 访问?它没有,这就是为什么我所有的 cookie 值都是简单的胡言乱语,无法通过 Javascript 访问(可以通过控制台测试),对吧?
感谢您的建议!
【问题讨论】:
标签: ruby-on-rails session ruby-on-rails-4 cookies session-fixation