Trace/Track 方法对 Apache 的影响

信息安全 Web应用程序 已知漏洞 硬化 阿帕奇
2021-09-07 20:22:04

当使用 Nessus 对运行 Apache 的主机执行漏洞扫描时,一个预期结果始终是“允许 HTTP TRACE / TRACK 方法”。虽然这个结果的基本 CVSS 仅为 4.3,但我始终建议对其进行更正。修复很简单,我从未收到过回击。

让这样的事情保持开放对现实生活有什么影响?

2个回答

HTTP TRACE 方法基本上是响应请求,以及响应中的所有标头。Cookie 标头也将包含在响应中。会话 cookie 应具有httpOnly标志以防止会话劫持攻击。此标志阻止从 Javascript 访问 cookie 值。基本上这可以确保即使攻击者利用网站中的 XSS 漏洞,他也不会知道会话 cookie 的值,因此他无法劫持它。

但是,如果 Web 应用程序服务器启用了 TRACE,攻击者只需将 XMLHttprequest (AJAX) 等发送到目标服务器。浏览器会将 cookie 附加到请求中,服务器将在响应中回显它们 - 攻击者的 JS 代码将获得响应并能够劫持会话。

该漏洞称为跨站点跟踪,并已在本白皮书中进行了描述

然而,自 2003 年发现此漏洞以来,许多浏览器干脆禁止使用 TRACE 方法发送请求。XMLHttpRequest规范现在不允许使用 TRACE 方法。我现在没有关于哪个浏览器允许发送 TRACE 的任何具体结果,我找到的最接近的匹配是这篇文章

但是,仍然可能有一些旧浏览器 - 以及其他插件,如 Flash、Silverlight、Java,它们经常从浏览器接收 cookie,并可能使用它们发送 TRACE。因此,现在禁用它是确保您不受跨站点跟踪攻击的唯一选择。这也很简单——只需在 Apache 中使用 TraceEnable off即可。

JavaScript 可以使用它来访问 http 请求标头。这允许

  • 使用“httpOnly”访问标记为无脚本访问的 cookie
  • http 基本身份验证凭据

这些攻击受制于同源策略,但结合 Java、Flash、ActiveX、Vbscript 中的 SOP 漏洞利用,它们可以应用于任何域。

关于这个主题有一个很好的白皮书

tldr:它本身不可利用,但与其他漏洞一起存在风险。