阅读关于HttpOnly cookies的博客文章让我开始思考,是否有可能通过任何形式的XSS获得HttpOnly cookie?杰夫提到它"大大提高了标准",但听起来似乎并没有完全抵御XSS.
除了并非所有浏览器都能正确支持此功能之外,黑客如何获取用户的cookie(如果他们是HttpOnly)?
我想不出任何方法可以让HttpOnly cookie发送到另一个站点或者通过脚本读取,所以看起来这是一个安全的安全功能,但我总是惊讶于一些人可以轻松地解决许多问题安全层.
在我工作的环境中,我们专门使用IE,因此其他浏览器不是问题.我正在寻找其他方式,这可能成为一个不依赖于浏览器特定缺陷的问题.
首先,正如其他人提到的那样,XSS 可以允许其他有效负载,而不仅仅是cookie窃取.
但是,是有反正偷的HttpOnly饼干,用XSS?(忽略httpOnly支持的问题?)....答案是:是的.
XSS的一个子集称为跨站点跟踪(XST)(或转到原始研究论文).此攻击使XSS有效负载向Web服务器(或代理,正向或反向)发送HTTP TRACE请求,该请求将向客户端回送完整请求 - 包括您的COOKIES,httpOnly与否.然后,XSS有效负载可以解析返回的信息,并检索那些美味的cookie ...
顺便说一下,XSS的另一个"子集"(有点)涉及将有效负载注入响应头.虽然类似,但这并不完全是 XSS,Header Injection甚至可以导致HTTP响应分裂(HRS) - 它更强大,允许几乎完全控制其他客户端,缓存中毒,当然还有访问cookie,如果愿意的话.
如果浏览器不理解HttpOnly,则攻击成功. 编辑:好的,你不担心.那没关系,但我会留下这个通知仅供参考.明确说明它是有用的.
除了嗅探网络之外,窃取的另一种方式是直接控制用户的计算机.然后可以从文件中读取cookie.如果它是会话cookie,它将在浏览器关闭后被删除.
顺便说一下,窃取会话cookie并不是XSS攻击唯一可能的"有效载荷".例如,它可能会使您的CSRF保护无效.它可能会改变您网站的内容以欺骗用户.还有很多其他恶意的东西.
因此,以更好的方式更好地保护自己(逃避输出),并将HttpOnly视为额外的保护层.