1. beplay体育能用吗网络安全学院
  2. SSRF

服务器端请求伪造(SSRF)

在本节中,我们将说明哪些服务器端请求伪造是什么,描述一些常见的示例,并说明如何查找和利用各种SSRF漏洞。

什么是SSRF?

服务器端请求伪造(也称为SSRF)是一个Web安全漏洞,允许攻击者诱导服务器端应用程序,以向意外的位置提出请beplay体育能用吗求。

在典型的SSRF攻击中,攻击者可能会导致服务器与组织基础结构内的内部服务连接。在其他情况下,它们可能会迫使服务器连接到任意外部系统,并可能泄漏敏感数据,例如授权凭证。

SSRF

SSRF攻击有什么影响?

成功的SSRF攻击通常会导致未经授权的操作或在弱势应用程序本身或应用程序可以与其他后端系统中进行通信的动作或访问组织内的数据。在某些情况下,SSRF漏洞可能允许攻击者执行任意命令执行。

导致与外部第三方系统连接的SSRF利用可能会导致恶意向前攻击,这些攻击似乎源自组织托管脆弱应用程序的组织。

常见的SSRF攻击

SSRF攻击通常会利用信任关系来升级脆弱应用程序的攻击并执行未经授权的动作。这些信任关系可能与服务器本身或与同一组织中的其他后端系统有关。

SSRF攻击服务器本身

在针对服务器本身的SSRF攻击中,攻击者通过其LOOPBACK网络接口诱导应用程序将HTTP请求回到托管应用程序的服务器。这通常涉及向URL提供hostName之类的url127.0.0.1(指向回环适配器的保留IP地址)或Localhost(同一适配器的常用名称)。

例如,考虑一个购物应用程序,该应用程序使用户可以查看某个商品是否有特定商店中的库存。为了提供库存信息,该应用程序必须查询各种后端REST API,这些API取决于产品和相关的存储。该函数是通过将URL传递到相关的后端API端点来实现的。因此,当用户查看项目的库存状态时,他们的浏览器会提出这样的请求:

POST/PRODUCT/Stock HTTP/1.0 Content-Type:application/x-www-form-urlencoded content Length:118 Stockapi = http://stock.weliketoshop.net:8080/product/product/stock/stock/check/check%3fproDuctId%3D6%3dd6%26 storeid%3D1

这会导致服务器向指定的URL提出请求,检索库存状态,然后将其返回给用户。

在这种情况下,攻击者可以修改请求,以指定服务器本身本地的URL。例如:

POST/PRODUCT/股票http/1.0 Content-type:应用程序/X-WWW-Form-urlencoded内容长度:118 Stockapi = http:// localhost/admin

在这里,服务器将获取/行政URL并将其退还给用户。

当然,攻击者可以参观/行政URL直接。但是,通常仅适用于合适的身份验证的用户,管理功能通常可以访问。因此,直接访问URL的攻击者不会看到任何感兴趣的东西。但是,当请求/行政URL来自本地机器本身,正常访问控件被绕过。该应用程序可以完全访问管理功能,因为该请求似乎来自受信任的位置。

为什么应用程序以这种方式行事,并隐含地信任本地机器的请求?由于各种原因,这可能会出现:

  • 访问控制检查可以在应用程序服务器前面的不同组件中实现。当将连接返回到服务器本身时,绕过检查。
  • 出于灾难恢复的目的,该应用程序可以允许使用本地计算机的任何用户登录而无需登录。这为管理员提供了一种方法,即使系统失去凭据,他们就可以恢复该系统。这里的假设是,只有完全信任的用户直接来自服务器本身。
  • 管理接口可能是在与主应用程序不同的端口号上侦听,因此用户可能无法直接到达。

这种信任关系,源自本地机器的请求的处理方式与普通请求不同,通常是使SSRF成为关键漏洞的原因。

SSRF对其他后端系统的攻击

通常由服务器端请求伪造产生的另一种信任关系是应用程序服务器能够与用户无法直接到达的其他后端系统进行交互。这些系统通常具有不可用的私有IP地址。由于后端系统通常受网络拓扑的保护,因此它们通常具有较弱的安全姿势。在许多情况下,内部后端系统包含敏感功能,无需任何能够与系统交互的人进行认证。

在前面的示例中,假设后端URL处有一个管理接口https://192.168.0.68/admin。在这里,攻击者可以通过提交以下请求来利用SSRF漏洞来访问管理接口:

POST/PRODUCT/股票http/1.0 Content-type:application/x-www-form-urlencoded内容长度:118 Stockapi = http://192.168.0.68/admin

规避普通SSRF防御

通常,看到包含SSRF行为的应用程序以及旨在防止恶意剥削的防御措施。通常,这些防御能力可以避免。

带有黑名单的输入过滤器的SSRF

某些应用程序块输入包含主机名,例如127.0.0.1Localhost,或敏感的URL/行政。在这种情况下,您通常可以使用各种技术来规避过滤器:

  • 使用替代的IP表示127.0.0.1, 如2130706433,,,,017700000001, 或者127.1
  • 注册您自己的域名127.0.0.1。您可以使用Spoofed.burpcollaborator.net以此目的。
  • 使用URL编码或案例变化混淆阻塞字符串。

SSRF带有基于白名单的输入过滤器

某些应用程序仅允许输入匹配,以或包含允许值的白名单。在这种情况下,您有时可以通过利用URL解析中的不一致来规避过滤器。

URL规范包含许多功能,这些功能在实施临时解析和验证URL时可能会被忽略:

  • 您可以在主机名之前嵌入凭据@特点。例如:

    https:// texchess-host@evil-host
  • 您可以使用指示URL片段的特征。例如:

    https:// evil-host#预期霍斯特
  • 您可以利用DNS命名层次结构将所需的输入放入您控制的完全合格的DNS名称中。例如:

    https:// expected-host.evil-host
  • 您可以将URL字符引用来混淆rel-parssing代码。如果实现过滤器的代码处理URL编码的字符与执行后端HTTP请求的代码不同,那么这一点特别有用。
  • 您可以一起使用这些技术的组合。

通过开放重定向绕过SSRF过滤器

有时可以通过利用开放的重定向漏洞来规避任何基于过滤器的防御。

在前面的SSRF示例中,假设严格验证用户提取的URL以防止恶意剥削SSRF行为。但是,允许其URL的应用程序包含一个开放的重定向漏洞。如果用于使后端HTTP请求支持重定向的API,您可以构造满足过滤器的URL并导致重定向请求到所需的后端目标。

例如,假设该应用程序包含一个开放的重定向漏洞,其中以下URL:

/product/nextproduct?currentProductId=6&path = http://evil-user.net

返回重定向:

http://evil-user.net

您可以利用开放的重定向漏洞绕过URL过滤器,并利用SSRF漏洞如下:

Post/Product/股票HTTP/1.0 Content-Type:应用程序/X-WWW-FORM-urlCOURLENCODED CONTENT-LENGTEM:118 Stockapi = http://weliketoshop.net/product/nextproduct/nextproduct?currentProductID = 6&pathp = http = http = http:///192.168。0.68/admin

此SSRF利用有效,因为该应用程序首先验证了所提供的StockapiURL在允许的域上,它是。然后,该应用程序请求提供的URL,该URL触发开放重定向。它遵循重定向,并要求攻击者选择的内部URL。

盲目的SSRF漏洞

当可以诱使应用程序向所提供的URL发布后端HTTP请求时,会出现盲SSRF漏洞,但是后端请求的响应未在应用程序的前端响应中返回。

Flind SSRF通常很难利用,但有时可能导致服务器或其他后端组件上的完整远程代码执行。

寻找SSRF漏洞的隐藏攻击表面

许多服务器端请求伪造漏洞相对容易发现,因为该应用程序的正常流量涉及包含完整URL的请求参数。SSRF的其他示例更难找到。

请求中的部分URL

有时,应用程序仅将hostName或URL路径的一部分放置在请求参数中。然后,提交的值将服务器端集成到请求的完整URL中。如果该值很容易将其识别为宿主名称或URL路径,则潜在的攻击表面可能是显而易见的。但是,由于您无法控制所请求的整个URL,因此可利用性可能会受到限制。

数据格式中的URL

某些应用程序以格式传输数据的规格允许包含数据解析器可能要求该格式的URL。一个明显的例子是XML数据格式,该格式已在Web应用程序中广泛使用,以将结构化数据从客户端传输到服务器。beplay体育能用吗当应用程序以XML格式接受数据并解析数据时,它可能很容易XXE注射,进而通过XXE容易受到SSRF的影响。当我们查看XXE注射漏洞时,我们将更详细地介绍它。

SSRF通过推荐人标头

一些应用程序采用服务器端分析软件来跟踪访问者。该软件通常会在请求中记录参考器标头,因为这对于跟踪传入链接特别感兴趣。通常,分析软件实际上会访问引用器标题中出现的任何第三方URL。这通常是为了分析参考站点的内容,包括在传入链接中使用的锚文本。结果,推荐人头通常代表SSRF漏洞的富有成果的攻击表面。看盲目的SSRF漏洞有关涉及推荐人标头的漏洞的示例。

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

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

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

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

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