在研究了 rails 指南和其他一些资源之后,我想知道对用户会话的会话固定攻击是如何发生的。至少我怀疑它是否像指南中描述的那样简单,攻击者......
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 无法访问(可以通过控制台测试),对吧?
感谢您的任何建议!