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

HTTP主机标题攻击

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

主机标题攻击

我们创建了许多实验室,这些实验室故意容易受到这些技术的影响。如果您愿意,您可以直接向实验室提出您的技能。

什么是HTTP主机标题?

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

get /beplay体育能用吗 web-security http / 1.1
主机:porbeplay官网可以赌tswigge net..

在某些情况下,例如当通过中间系统转发请求时,在达到预期的后端组件之前可以改变主机值。我们将在下面更详细地讨论此方案。

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

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

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

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

虚拟托管

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

在任何一种情况下,虽然这些不同的网站中的每一个都有不同的域名,但它们都与服务器共享公共IP地址。beplay体育能用吗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主机标题是什么。对于Penterers和Bug赏金猎人来说,我们为如何为自己识别和利用这些漏洞创造了一些额外的指导。我们还提供了一些故意脆弱的伤害实验室这样你就可以练习一些这些技术。

如何防止HTTP主机标题攻击

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

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

保护绝对URL.

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

验证主机标题

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

不支持主机覆盖标题

检查您不支持可用于构建这些攻击的其他标题也很重要X-Forwarded-Host。请记住,默认情况下可能支持这些。

白名单允许域名

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

小心内部虚拟主机

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

使用Burp套件查找HTTP主机头漏洞

通过Portswigge的Web安全学院工作的好处beplay官网可以赌beplay体育能用吗

开始使用Web安全学院,您可以在那里练习在beplay体育能用吗现实目标上利用漏洞..它是免费的!

已经有了一个帐户?这里登录