服务器端请求伪造

high Web App Scanning 插件 ID 112439

简介

服务器端请求伪造

描述

Web 应用程序通常依赖网络请求来查询外部资源,并检索数据以进行处理。

攻击者能够控制这些出站请求并将其发送到其拥有的资源、本地主机本身或目标应用程序内部网络中的私人主机时,存在服务器端请求伪造 (SSRF) 漏洞。

通过注入特定请求和使用各种协议(例如 HTTPS 或 Gopher),攻击者可利用此漏洞尝试在目标环境中获取敏感数据的访问权限、执行未经授权的修改或获取远程代码执行。

根据 Web 应用程序的配置,漏洞可能为三种类型:

- Blind:应用程序执行恶意请求但未向攻击者返回任何响应。难以利用,因为攻击者仅需依赖其对目标的了解即可发动攻击。

- Half-blind:执行恶意请求,并将部分响应返回给攻击者。例如,应用程序可能会返回与出站请求状态相关的不同错误消息。尽管利用漏洞仍然很困难,但攻击者可收集信息以帮助进一步发动攻击。

- Non-blind:应用程序会将响应中的完整内容返回至恶意请求。利用漏洞更容易,而且通常会使此漏洞的影响更严重。

扫描程序能够在目标应用程序中注入构建的请求(执行外部请求并返回部分或完整响应),以检测服务器端请求伪造漏洞。

解决方案

缓解措施主要取决于应用程序用途和设计,但通常情况下建议在应用程序和网络层应用深度防御原则并强制执行控制措施。
在应用程序中,输入会由解析器处理,该漏洞在多种情况下可被滥用。建议在执行请求之前,避免允许用户向应用程序发送完整的 URL,并针对白名单(如适用)验证主机名或 IP 地址。此外,使用黑名单是一种解决方案,可用于阻止对本地主机和内部基础设施的所有资产发出请求。由于应用程序有时会使用 libcurl 等库来执行请求,因此请确保该组件为最新,以避免利用解析器本身中的安全漏洞。
在网络层,一种方法是实现网络隔离以控制和限制基础设施主机之间的流量,并使用防火墙或 Web 代理等安全服务来实施网络限制。

另见

https://cheatsheetseries.owasp.org/cheatsheets/Server_Side_Request_Forgery_Prevention_Cheat_Sheet.html

https://owasp.org/www-community/attacks/Server_Side_Request_Forgery

https://resources.infosecinstitute.com/the-ssrf-vulnerability

https://www.blackhat.com/docs/us-17/thursday/us-17-Tsai-A-New-Era-Of-SSRF-Exploiting-URL-Parser-In-Trending-Programming-Languages.pdf

https://www.bugcrowd.com/resources/webinars/server-side-request-forgery

插件详情

严重性: High

ID: 112439

类型: remote

发布时间: 2020/6/9

最近更新时间: 2023/8/9

扫描模板: api, full, pci, scan

风险信息

VPR

风险因素: Medium

分数: 4.2

CVSS v2

风险因素: High

基本分数: 7.5

矢量: CVSS2#AV:N/AC:L/Au:N/C:P/I:P/A:P

CVSS 分数来源: Tenable

CVSS v3

风险因素: High

基本分数: 7.3

矢量: CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L

CVSS 分数来源: Tenable

参考资料信息