1. beplay体育能用吗网络安全学院
  2. HTTP主机标头攻击

HTTP主机标头攻击

在本节中,我们将讨论如何通过HTTP主机标头将网站暴露于各种攻击中如何进行配置和缺陷的业务逻辑。beplay体育能用吗我们将概述用于识别容易受到HTTP主机标头攻击的网站的高级方法论,并演示如何利用它。beplay体育能用吗最后,我们将提供一些有关如何保护自己的网站的一般指导。beplay体育能用吗

主机标头攻击

什么是HTTP主机标头?

截至HTTP/1.1,HTTP主机标头是强制性请求标头。它指定了客户端要访问的域名。例如,当用户访问时https://beplay官网可以赌portsbeplay体育能用吗wigger.net/web-security,他们的浏览器将撰写包含主机标头的请求,如下所示:

获取 /网beplay体育能用吗络安全http /1.1主机:portswigger.nbeplay官网可以赌et

在某些情况下,例如,当请求已由中介系统转发时,在达到预期的后端组件之前,主机值可能会更改。我们将在下面更详细地讨论此情况。

HTTP主机标头的目的是什么?

HTTP主机标头的目的是帮助确定客户端想要与之通信的后端组件。如果请求不包含主机标头,或者以某种方式将主机标头畸形,则在将传入请求路由到预期的应用程序时可能会导致问题。

从历史上看,这种歧义不存在,因为每个IP地址只能托管一个域的内容。如今,很大程度上是由于基于云的解决方案和外包大部分相关体系结构的不断增长的趋势,因此多个网站和应用程序在同一IP地址中可以访问是beplay维护得多久很常见的。beplay体育能用吗由于IPv4地址耗尽,这种方法的流行也部分增加。

当通过相同的IP地址访问多个应用程序时,这通常是以下方案之一的结果。

虚拟托管

一种可能的情况是,当单个Web服务器托管多个网站或应用程序时。beplay体育能用吗这可能是具有单个所有者的多个网站,但也有可能在beplay体育能用吗单个共享平台上托管具有不同所有者的网站。这比以前不那么普遍,但仍有一些基于云的SaaS解决方案发生。beplay维护得多久

无论哪种情况,尽管这些不同的网站中的每一个都将具有不同的域名,但它们都与服务器共享一个常见的IPbeplay体育能用吗地址。beplay体育能用吗以这种方式托管在单个服务器上的网站被称为“虚拟主机”。

对于访问网站的普通用户,虚拟主机通常与在自己的专用服务器上托管beplay体育能用吗的网站无法区分。

通过中介路由流量

另一个常见的情况是,何时将网站托管在不同的后端服务器上,但是客户beplay体育能用吗端和服务器之间的所有流量都是通过中介系统路由的。这可能是简单的负载平衡器或某种反向代理服务器。在客户通过内容交付网络(CDN)访问网站的情况下,此设置尤其普遍。beplay体育能用吗

在这种情况下,即使网站托管在单独的后端服务器上,它们的所有域beplay体育能用吗名都已解析为中介组件的单个IP地址。这提出了与虚拟托管相同的挑战,因为反向代理或负载平衡器需要知道应将每个请求路由的相应后端。

HTTP主机标头如何解决此问题?

在这两种情况下,主机标头都依赖于指定预期的收件人。一个共同的类比是向住在公寓楼中的人发送一封信的过程。整个建筑物都有相同的街道地址,但是在这个街道地址后面,每个公寓都需要以某种方式收到正确的邮件。解决此问题的一种解决方案是仅在地址中包括公寓号或收件人的名称。在HTTP消息的情况下,主机标头具有类似的目的。

当浏览器发送请求时,目标URL将解析为特定服务器的IP地址。当该服务器收到请求时,它是指主机标头确定预期的后端并相应地转发请求。

什么是HTTP主机攻击?

HTTP主机标头攻击利用弱势网站,这些网站以不安全的方式处理主机标头的值。beplay体育能用吗如果服务器隐式信任主机标头,并且无法正确验证或逃脱,则攻击者可能能够使用此输入来注入操纵服务器端行为的有害有效负载。涉及将有效载荷直接注入主机标头的攻击通常被称为“主机注入”攻击。

现成的Web应用程序通常不知beplay体育能用吗道它们在设置过程中在配置文件中手动指定,否则将其部署在哪个域上。例如,当他们需要知道当前域以生成电子邮件中包含的绝对URL时,他们可能会求助于从主机标头中检索域:

联系支持

标题值也可以用于网站基础架构不同系统之间的各种交互作用。beplay体育能用吗

由于主机标头实际上是用户可控的,因此这种做法可能导致许多问题。如果输入未正确逃脱或验证,则主机标头是利用一系列其他漏洞的潜在向量,最值得注意的是:

  • beplay体育能用吗网络缓存中毒
  • 商业逻辑缺陷在特定功能中
  • 基于路由的SSRF
  • 经典的服务器端漏洞,例如SQL注入

HTTP主机标头漏洞如何出现?

HTTP主机标头漏洞通常是由于缺陷的假设,即标头无法控制。这会产生对主机标头的隐式信任,并导致其值不足或逃脱其值,即使攻击者可以使用Burp代理等工具轻松修改此功能。

即使将主机标头本身更牢固地处理,具体取决于处理传入请求的服务器的配置,可以通过注入其他标头来覆盖主机。有时,网站所有者不知beplay体育能用吗道这些标头默认情况下得到支持,因此,可能不会对其进行相同的审查对待。

实际上,这些漏洞中的许多不是因为不安全的编码,而是因为相关基础架构中一个或多个组件的不安全配置。这些配置问题可能会发生,因为网站将第三方技术集成到其体系结构中,而无需理解配置选项及其安全beplay体育能用吗含义。

利用HTTP主机标头漏洞

到现在为止,您应该对HTTP主机标题是什么有很好的了解。对于五旬节和虫子赏金猎人来说,我们为如何识别和利用自己的这些漏洞创建了一些其他指导。我们还提供了一些故意脆弱的实验室这样您就可以练习其中一些技术。

如何防止HTTP主机标头攻击

为了防止HTTP主机标头攻击,最简单的方法是避免在服务器端代码中完全使用主机标头。仔细检查每个URL是否真的需要绝对。您通常会发现您可以使用相对URL。这种简单的更改可以帮助您防止beplay体育能用吗网络缓存中毒特别是漏洞。

防止HTTP主机攻击的其他方法包括:

保护绝对URL

当您必须使用绝对URL时,应要求在配置文件中手动指定当前域,并参考此值而不是主机标头。例如,这种方法将消除密码重置中毒的威胁。

验证主机标头

如果您必须使用主机标头,请确保正确验证它。这应涉及对允许域的白名单进行检查,并拒绝或重定向任何未识别的主机的请求。您应该咨询您的框架文档,以获取有关如何执行此操作的指导。例如,Django框架提供了允许的host设置文件中的选项。这种方法将减少您对宿主标头注射攻击的接触。

不支持主机覆盖标题

还必须检查您不支持可能用于构建这些攻击的其他标头,特别是X前主持人。请记住,默认情况下可能会支持这些。

白名单允许域

为了防止对内部基础架构进行基于路由的攻击,您应该配置负载平衡器或任何反向代理,以将请求仅转发给允许域的白名单。

小心仅内部虚拟主机

使用虚拟托管时,应避免在与公共面向公共内容的服务器上托管仅内部仅限网站和应用程序。beplay体育能用吗否则,攻击者可能能够通过主机标头操作访问内部域。

免费注册以跟踪您的学习进度

通过Portswigger的网络安全学院工作的好处beplay官网可以赌beplay体育能用吗
  • 练习在现实目标上利用漏洞。

  • 记录您从学徒到专家的发展。

  • 看看您在我们的名人堂中排名。

已经有一个帐户?在此登录