观察到 Struts 2 S2-066 漏洞利用企图 (CVE-2023-50164)
简介
Apache Struts 是一种功能强大的开源 Web 应用程序框架,深受全球公司和企业的喜爱。正因为 Apache Struts 被广泛使用,所以一直是黑客的重点攻击目标。当出现严重的远程代码执行 (RCE) 漏洞时,安全和 IT 团队必须迅速采取措施,以确保系统安全。
2023 年 12 月 7 日,CVE-2023-50164 被公之于众。该漏洞允许攻击者通过操纵文件上传参数,以发动路径遍历和上传恶意文件。这个漏洞可能让攻击者实现对系统的完全控制。
12 月 11 日,首个概念验证 (PoC) 漏洞被正式公布并让更多人知道了这一漏洞。很快,12 月 12 日便出现了漏洞利用企图(图 1)。
关于 CVE
CVE-2023-50164 是 Apache Struts 2 中的一个严重漏洞,而 Apache Struts 2 是一个广泛应用于构建 Java EE Web 应用程序的开源框架。Apache Struts 因其强大的稳健性和灵活性而广受赞誉,在众多商业和开源 Web 项目的架构中占据着举足轻重的地位。这使得该漏洞成为各行业(包括金融、医疗保健和政府服务等关键行业)共同关注的问题。
CVE-2023-50164 的核心问题在于它可以通过路径遍历漏洞实施 RCE。具体来说,该漏洞利用了 Apache Struts 框架在处理文件上传时的机制。攻击者通过操控文件上传参数,可以在未经授权的情况下,高效地遍历 Web 服务器的目录结构。
这种遍历行为允许攻击者将恶意文件(通常是基于 Java 服务器页面 (JSP) 的 Web shell)放置在原本不是为了存储用户上传文件内容而设计,也不允许用户上传文件内容的目录或位置中。要利用这个漏洞,攻击者必须以超出应用程序开发人员预期的方式,绕过服务器端的安全机制。
攻击流程
攻击流程如下所示:
1.在实施攻击之前,攻击者会进行详细的侦察,以识别使用易受攻击版本的 Apache Struts 以及具有文件上传 URL 路径的网站或 Web 应用程序。
2.攻击者准备恶意文件,这些文件通常是 JSP 文件或 Web shell。
3.攻击者创建一个专门的请求来上传文件。这个请求中包含了被篡改的数据,如文件名和路径,从而实现对文件上传参数的操控。
4.在第 3 步中提到的上传请求中,攻击者包含了利用路径遍历漏洞的系统命令。这些命令指示服务器将文件放置在常规上传目录之外。这就是路径遍历阶段。
5.攻击者向运行易受攻击版本的 Apache Struts 的服务器发送上传请求。如果攻击成功,服务器会将恶意文件或 Web shell 保存到可执行它的位置或目录中。
6.随后,攻击者通过 Web 浏览器或自动脚本访问已上传的恶意文件。访问该文件将触发在 Web 服务器上执行恶意代码或 Web shell。
7.一旦执行了第 6 步中的代码,攻击者便可以在服务器上执行其他操作。这些操作包括窃取敏感数据、篡改网站内容,以及完全控制网络服务器。
8.根据攻击者的意图或动机,他们可能会保留秘密访问权限以备将来利用,或者利用遭到入侵的服务器发动进一步的攻击。
影响
CVE-2023-50164 会造成深远的影响。RCE 漏洞是 Web 应用程序中最为严重和主要的威胁之一,因为这种漏洞允许攻击者在受影响的服务器上执行任意命令。这可能导致未经授权的访问和数据窃取,进而对整个系统造成危害。
由于 Apache Struts 的广泛集成,这些风险被进一步放大,使得 CVE-2023-50164 成为全球企业亟待解决的高优先级问题。
观察到漏洞利用企图
在 PoC 漏洞被很多人知道的次日,即 12 月 12 日,我们观察到了与已发布的 PoC 漏洞相似的漏洞利用企图(图 2)。尽管这些攻击企图确实存在,但成功的可能性并不高。因为攻击成功的前提是,目标端点必须具备文件上传功能。
除了预期的 PoC 扫描之外,我们还观察到了寻求利用此漏洞的请求,这些请求与已发布的 PoC 不匹配。这个变体攻击的路径是 /s2/upload.action,而不是原来的 /login.action(图 2)。有趣的是,参数名称“fileFileName”被用于包含路径遍历,这与原始的“uploadFileName”有所不同。
目前还不清楚这些端点是否具备文件上传功能。我们发现一组 IP 地址针对多个不同的客户发动了相同的变体 2 漏洞利用企图。
Akamai 安全情报组将继续深入分析我们 Web 应用程序防火墙 (WAF) 日志中的新型变体,并将及时更新此博客的相应部分,以提供任何有关新变体的最新信息。
利用 App & API Protector 进行抵御
当客户在自动模式下使用 Akamai Adaptive Security Engine ,并在拒绝模式下具有“Web 平台攻击”组时,他们将自动免受这些攻击的影响。当客户在手动模式下使用 Adaptive Security Engine 时,他们应确保在拒绝模式下具有“Web 平台攻击”组或以下单个规则(图 4):
3000929 - 检测到 Apache Struts 路径遍历和文件上传攻击 (CVE-2023-50164)
总结
Akamai App & API Protector 致力于为安全防护领域的客户提供强大的安全保障,以有效防范这些攻击企图。此外,我们目前无法确定目标端点是否确实具备文件上传功能。因此,我们尚未观察到攻击者在成功攻击后可能采取的任何后续漏洞利用行为。
虽然及时更新源代码是非常有效的防御方法,但我们也必须承认,安全团队在快速识别并安全地更新易受攻击的组件方面,需要付出巨大的努力。随着应用程序数量不断攀升,加之这些环境不断变化,这一挑战变得越来越复杂。
尽管“安全是分层的”这个观点可能看起来像是老生常谈,但我们仍然需要重视并采取其他补充措施来加强整体安全性。攻击者往往能在 24 小时内迅速适应新的公共 PoC,这极大地提升了防御者的应对难度。
实施 WAF(如 Akamai App & API Protector)可以作为额外的防御壁垒,有助于防范新发现的 CVE,并增加额外的安全缓冲。