1. beplay体育能用吗网络安全学院
  2. beplay体育能用吗网络缓存中毒

beplay体育能用吗网络缓存中毒

在本节中,我们将讨论什么是网络缓存中毒以及哪些行为会导致网络缓存中毒漏洞。beplay体育能用吗我们还将研究一些利用这些漏洞的方法,并建议您减少对它们的接触。

什么是网络缓存中beplay体育能用吗毒?

beplay体育能用吗Web Cache中毒是一种高级技术,攻击者可以利用Web服务器和缓存的行为,从而向其他用户提供有害的HTTP响应。

从根本上讲,网络缓存中毒涉及两beplay体育能用吗个阶段。首先,攻击者必须弄清楚如何从无意中包含某种危险有效载荷的后端服务器中引起响应。一旦成功,他们需要确保将他们的反应缓存并随后将其服务给预期的受害者。

中毒的网络缓存可能是分beplay体育能用吗发许多不同攻击的毁灭性手段,利用漏洞,例如XSS,JavaScript注入,打开重定向等。

beplay体育能用吗网络缓存中毒研究

该技术首先由我们的2018年研究论文“实用的网络缓存中毒”推广,并于2020年通过第二份研究论文“ Web Cache纠缠:中毒的新途径”开发。beplay体育能用吗如果您对我们如何在野外发现和利用这些漏洞的详细描述感兴趣,则可以在我们的研究页面上提供完整的文章。

网络缓存如何工作?beplay体育能用吗

为了了解网络缓存中毒的漏洞,对网络缓beplay体育能用吗存的工作方式有基本的了解很重要。

如果服务器不得不分别向每个HTTP请求发送新的响应,则可能会超载服务器,从而导致延迟问题和差的用户体验,尤其是在繁忙期间。缓存主要是减少此类问题的一种手段。

缓存位于服务器和用户之间,通常在固定的时间内保存(缓存)对特定请求的响应。如果另一个用户发送等效请求,则缓存仅将缓存响应的副本直接提供给用户,而无需后端的任何交互。通过减少其必须处理的重复请求的数量,这极大地减轻了服务器上的负载。

正常的缓存行为

缓存键

当缓存收到HTTP请求时,它首先必须确定是否有可以直接服务的缓存响应,或者是否必须转发后端服务器处理请求。缓存通过比较请求组件的预定义子集(共同称为“缓存密钥”)来确定等效的请求。通常,这将包含请求行,并且主持人标题。缓存键中未包含的请求组件被称为“不关键”。

如果传入请求的缓存键与先前请求的密钥匹配,则缓存将其视为等效。结果,它将提供为原始请求生成的缓存响应的副本。这适用于带有匹配的缓存键的所有后续请求,直到缓存响应到期为止。

至关重要的是,缓存完全忽略了请求的其他组件。稍后,我们将详细探讨这种行为的影响。

网络缓存中毒攻击有什么影响?beplay体育能用吗

网络缓存中毒的影响很大程度上beplay体育能用吗取决于两个关键因素:

  • 攻击者到底可以成功缓存什么
    由于中毒的缓存比独立攻击更是一种分配手段,因此网络缓存中毒的影响与注射的有效载荷有多么有害。beplay体育能用吗与大多数攻击一样,网络缓存中毒也可以与其他攻击结合使用,以进beplay体育能用吗一步升级潜在的影响。
  • 受影响页面上的流量数量
    中毒的反应只会向访问受影响页面的用户提供中毒。结果,影响的范围从不存在到大规模,具体取决于页面是否流行。例如,如果攻击者设法在主要网站的主页上毒害了缓存的响应,则攻击可能会影响数千名用户,而不会随后发生任何攻击者的交互。beplay体育能用吗

请注意,缓存条目的持续时间不一定会影响网络缓存中毒的影响。beplay体育能用吗攻击通常可以以这样的方式进行脚本脚本,以使其无限期地重新驾驶缓存。

构建网络缓存中毒攻击beplay体育能用吗

一般而言,构建基本的网络缓存中毒攻击涉及以下步骤:beplay体育能用吗

  1. 识别和评估未关注的输入
  2. 引起后端服务器的有害响应
  3. 获得响应缓存

识别和评估未关注的输入

任何网络beplay体育能用吗缓存中毒攻击都依赖于操纵无关的输入,例如标题。beplay体育能用吗在决定是否向用户提供缓存的响应时,Web缓存忽略了无关的输入。这种行为意味着您可以使用它们来注入有效载荷并引起“中毒”响应,如果缓存,将为所有请求具有匹配的缓存密钥的用户提供。因此,构建网络缓存中毒攻击的第一步是识别服务器支持的未关键输入。beplay体育能用吗

您可以通过在请求中添加随机输入并观察它们是否对响应产生影响,从而识别出无关的输入。这可能很明显,例如直接反映响应中的输入,或触发完全不同的响应。但是,有时效果更加微妙,需要一些侦探工作才能弄清楚。您可以使用诸如BURP比较之类的工具来比较有或没有注入输入的工具,但这仍然涉及大量的手动努力。

参数矿工

幸运的是,您可以通过添加来自动化识别未关键输入的过程参数矿工从Bapp商店延伸到Burp。要使用参数矿工,您只需在要调查的请求中右键单击并单击“猜测标题”。然后,Param Miner在后台运行,发送包含来自其广泛内置的标头列表的不同输入的请求。如果包含其注入的输入之一的请求对响应有影响,则参数矿工将其记录在burp中,请在“问题”窗格中记录Burp Suite专业人士,或在扩展的“输出”选项卡(“ Extender”>“ Extensions”>“ param Miner”>“输出”)中Burp Suite Community Edition

例如,在以下屏幕截图中,参数矿工找到了一个无关的标头X前主持人在网站的主页上:beplay体育能用吗

参数矿工

警告:在实时网站上测试无关输入时,存在无意中导致缓存服务您对真实用户的响应的风险。beplay体育能用吗因此,重要的是要确保您的请求都具有唯一的缓存键,以便它们只能为您服务。为此,您可以在每次提出请求时手动在请求行中添加缓存Buster(例如唯一参数)。另外,如果您使用的是Param Miner,则可以自动将缓存Buster添加到每个请求中。

引起后端服务器的有害响应

一旦确定了一个无关的输入,下一步就是确切评估网站处理方式。beplay体育能用吗了解这对于成功引起有害反应至关重要。如果输入反映在服务器的响应中,而无需正确消毒或用于动态生成其他数据,则这是Web Cache中毒的潜在入口处。beplay体育能用吗

获得响应缓存

操纵输入以引起有害的反应是一半的战斗,但是除非您可以使响应被缓存,否则它没有取得太大的成就,这有时会很棘手。

响应是否被缓存可以取决于各种因素,例如文件扩展名,内容类型,路由,状态代码和响应标头。您可能需要花一些时间来简单地在不同页面上播放请求并研究缓存的行为。一旦您弄清楚如何获得包含恶意输入的响应缓存,就可以将剥削交付给潜在的受害者。

beplay体育能用吗网络缓存中毒

利用网络缓存中毒beplay体育能用吗漏洞

这个基本过程可用于发现和利用各种不同的网络缓存中毒漏洞。beplay体育能用吗

在某些情况下,由于缓存设计中的beplay体育能用吗一般缺陷,引起了网络缓存中毒漏洞。其他时候,特定网站实现缓存的方式可以引入可以利用的意外怪癖。beplay体育能用吗

在以下各节中,我们将概述这两种情况的一些最常见的例子。我们还提供了许多交互式实验室,以便您可以在行动中看到其中的一些漏洞,并利用它们。

如何防止网络缓存中毒漏洞beplay体育能用吗

防止网络缓存中毒的确切方法显然是完全禁用缓存。beplay体育能用吗尽管对于许多网站而言,这可能不beplay体育能用吗是一个现实的选择,但在其他情况下,这可能是可行的。例如,如果您仅使用缓存是因为它在采用CDN时默认打开了,则可能值得评估默认的缓存选项是否确实反映了您的需求。

即使您确实需要使用缓存,只要您对班级的“静态”限制,将其限制在纯粹的静态响应中也是有效的。例如,确保攻击者无法欺骗后端服务器来检索其恶意版本的静态资源,而不是真正的资源。

这也与有关Web安全性更广泛的观点有关。beplay体育能用吗现在,大多beplay体育能用吗数网站现在将各种第三方技术纳入其开发过程和日常运营中。无论您自己的内部安全姿势多么坚固,一旦您将第三方技术纳入环境,您就依靠其开发人员也像您一样具有安全意识。在您只有最弱点的安全性的基础上,至关重要的是,在整合之前,请确保您完全了解任何第三方技术的安全含义。

具体来说,在Web缓存中毒的背景下,这不仅意味着要确定是否默认beplay体育能用吗地打开缓存,而且还要查看CDN支持哪些标头。上面讨论的几个网络缓存中毒漏洞beplay体育能用吗被暴露出来,因为攻击者能够操纵一系列晦涩的请求标头,其中许多完全不需要网站的功能。同样,您可能会在没有意识到的情况下将自己暴露于此类攻击时,纯粹是因为您已经实施了一些技术,这些技术默认情况下支持这些无关的输入。如果网站不需要标题,则应将其禁用。

您还应在实施缓存时采取以下预防措施:

  • 如果出于绩效原因考虑从缓存密钥中排除某些内容,请改用请求。
  • 不要接受脂肪得到要求。请注意,默认情况下,一些第三方技术可能会允许这样做。
  • 补丁客户端漏洞即使它们似乎无法爆发。这些漏洞中的一些实际上可能是由于缓存行为中无法预测的怪癖而被利用的。有人发现怪癖是一个时间问题,无论是基于缓存还是其他,这使得这种漏洞可利用。

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

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

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

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

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