程序员的知识教程库

网站首页 > 教程分享 正文

「漏洞分析」Struts2 S2-062远程代码执行漏洞(CVE-2021-31805)

henian88 2024-08-12 19:44:55 教程分享 88 ℃ 0 评论

近日,Apache官方发布安全通告,披露了其Struts2框架存在远程代码执行漏洞,漏洞编号CVE-2021-31805 。

该漏洞的产生原因是一个更早漏洞CVE-2020-17530的修复不完全。CVE-2020-17530漏洞是由于Struts2会对某些标签属性(比如ID)的属性值进行二次表达式解析,因此当这些标签属性中使用了%{x}且x值用户可控时,用户再传入一个%{payload},就会造成OGNL表达式执行。

在CVE-2021-31805漏洞修复前,仍然有部分标签属性使得攻击者可以恶意构造OGNL表达式执行,导致远程代码执行。

危害等级

高危

影响范围

2.0.0≤Apache Struts≤2.5.29

漏洞复现

目标机器10.203.200.4使用的是Apache Struts 2.5.25版本,可以在提交的报文body部分写入指令pwd,从返回结果id=”/usr/src”可以看出,提交的指令被执行了。

排查方法

可通过排查struts-core-版本号.jar来判断是否受此漏洞影响:

若当前版本在受影响范围内,则可能存在安全风险。

如果没有版本号,可以在jar文件的META-INF/MANIFEST.MF中搜索Bundle-Version,若2.0.0≤Apache Struts≤2.5.29,则存在该漏洞。

处置建议

1、版本升级

目前官方已发布最新版本,建议受影响用户及时更新升级,下载链接:

https://struts.apache.org/download.cgi#struts-ga

2、临时防护措施

可通过设置所有标签中value=" "来缓解此漏洞。

将org.apache.commons.collection.BeanMap添加至excludedClasses黑名单中。

3、产品解决方案

安博通深度安全网关已支持该漏洞防护,需要将规则包升级到20220419及以上版本。升级位置为:系统维护→系统升级→自动升级,点击立即升级或下载离线特征库手动升级。

防护后效果:规则升级后,在策略中选用包含该特征的IPS模板,并配置记录日志和阻断。当攻击发生时,就会被安博通深度安全网关拦截并记录日志。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表