20

阅读这篇关于 HttpOnly cookie 的博文让我开始思考,是否有可能通过任何形式的 XSS 获得 HttpOnly cookie?Jeff 提到它“大大提高了标准”,但听起来好像它并不能完全防止 XSS。

除了并非所有浏览器都正确支持此功能这一事实之外,如果它们是 HttpOnly,黑客如何获取用户的 cookie?

我想不出任何办法让 HttpOnly cookie 将自己发送到另一个站点或被脚本读取,所以这似乎是一个安全的安全功能,但我总是惊讶于有些人可以轻松地解决许多问题安全层。

在我工作的环境中,我们只使用 IE,所以其他浏览器不是问题。我正在专门寻找其他可能成为不依赖于浏览器特定缺陷的问题的方法。

4

5 回答 5

32

首先,正如其他人提到的,XSS可以允许其他有效负载,而不仅仅是窃取 cookie。

但是,没有办法通过 XSS 窃取 httpOnly cookie?(忽略 httpOnly 支持的问题?).... 答案是:是的。
XSS 的一个子集称为跨站点跟踪 (XST)(或转到原始研究论文)。这种攻击让 XSS 有效负载向 Web 服务器(或代理,正向或反向)发送 HTTP TRACE 请求,该请求将向客户端回显完整的请求 - 包括您的 COOKIES,httpOnly 与否。然后 XSS 有效负载可以解析返回的信息,并检索那些美味的 cookie...


顺便说一句,XSS 的另一个“子集”(有点)涉及将有效负载注入响应标头。虽然类似,但这并不完全是XSS,而且标头注入甚至可以导致HTTP 响应拆分 (HRS) - 它更强大,允许几乎完全控制其他客户端、缓存中毒,当然还可以访问 cookie,如果愿意的话。

于 2009-02-08T01:18:46.173 回答
5

使用 HttpOnly cookie将防止XSS 攻击获取这些 cookie。

除非:

  • 您的浏览器不支持 HttpOnly
  • 浏览器中存在一个前所未有的漏洞,它破坏了 HttpOnly
  • 服务器已被破坏(但无论如何你可能已经被水洗了)。

正如另一位发帖人所指出的:XSS 并不是唯一的威胁,抓取 cookie 也不是 XSS 的唯一威胁。我敢肯定你知道这一点——我只是完成了!

祝你好运!

于 2008-10-23T14:45:00.530 回答
4

如果浏览器不理解 HttpOnly,则攻击成功。 编辑:好吧,你不担心。没关系,但我会留下此通知以供参考。明确说明它是有用的。

除了嗅探网络之外的另一种窃取方式是直接控制用户的计算机。然后可以从文件中读取 cookie。如果是会话cookie,当然会在浏览器关闭后被删除。

顺便说一句,窃取会话 cookie 并不是 XSS 攻击唯一可能的“有效载荷”。例如,它可能会使您的 CSRF 保护失效。它可能会更改您网站的内容以欺骗用户。和许多其他恶意的东西。

所以最好以一种好的方式保护自己(转义输出),并将 HttpOnly 视为额外的保护层。

于 2008-10-23T06:32:19.793 回答
-3

数据包嗅探可以读取通过 http 传输的 cookie。但它可能不属于 XSS。

于 2008-10-23T01:19:08.020 回答
-3

JavaScript 可以修改页面上的 HTML,因此,httpOnly并不意味着您可以安全地抵御 XSS。

于 2010-05-27T17:47:05.200 回答