【安全漏洞】Apache Struts任意文件上传漏洞S2-067【CVE-2024-53677】 POC 已发布

【安全漏洞】Apache Struts任意文件上传漏洞S2-067【CVE-2024-53677】 POC 已发布

原创 Eleven Liu 安全有术 2024-12-17 15:15

漏洞概述

Apache Struts是用于创建Java Web应用程序的开源框架,旨在为Java Web开发提供一个灵活、强大且易于扩展的解决方案,应用非常广泛。

Apache发布安全公告修复了Apache Struts任意文件上传漏洞S2-067【CVE-2024-53677】。由于文件上传功能存在逻辑缺陷,未经身份验证的攻击者可以通过
控制文件
上传参数进行路径遍历,从而通过上传恶意文件来实现远程代码执行。

漏洞信息

漏洞编号:CVE-2024-53677

CVSS 评分:9.5(严重)

漏洞等级:高危

漏洞类型:文件上传

影响版本:

Struts 2.0.0 – Struts 2.3.37(EOL)

Struts 2.5.0 – Struts 2.5.33

Struts 6.0.0 – Struts 6.3.0.2

安全版本:

Struts >= 6.4.0

POC

https://github.com/TAM-K592/CVE-2024-53677-S2-067

修复方案

A
pache Struts 团队已经在 6.4.0
 版本中修复了该漏洞,建议立即升级到 6.4.0
 版本或更高版本。

下载链接:https://struts.apache.org/download.cgi

升级后,需要迁移到新的 Action Fil
e Upload Mechanism 以确保安全,需将ActionFileUploadInterceptor作为文件上传组件,由于不向后兼容,此迁移需要重构代码。

官方链接:https://cwiki.apache.org/confluence/display/WW/S2-067

文件上传功能安全建议

文件上传漏洞
是指文件上传功能没有对上传文件进行安全校验,导致恶意用户可以利用此功能上传并执行恶意文件,如木马,病毒,恶意脚本或者WebShell等,文件上传漏洞
是web安全中经常利用到的一种漏洞,也是危险程度较高的漏洞。文件上传功能在设计、开发环节应遵循以下安全要求:

序号
安全要求
1
在服务端对上传文件的类型进行校验,仅允许上传白名单文件类型,禁止上传可执行类文件,如jsp、jspx、class、java、jsp、php、sh、exe、jar、py等
2
固定上传文件的保存路径,对文件路径和文件名进行校验,禁止包含“/”、”“\”字符
3
禁止将上传文件保存在WEB容器的可执行目录,即要确保上传的文件不能作为jsp、php等脚本文件被应用程序解析
4

对上传的压缩包文件以及压缩包内的文件进行文件类型和文件名进行校验,禁止上传可执行文件和特殊字符
5
对上传的文件大小和频率进行校验,对压缩包解压后的文件大小进行校验

【免责声明】本文内容仅用于安全研究,禁止用于一切非法用途。