ST2漏洞,您了解多少?如何防范?

Struts2 S2-062(CVE-2021-31805)漏洞是一个严重的远程代码执行漏洞,以下是关于该漏洞的详细分析:

ST2漏洞,您了解多少?如何防范?插图1

漏洞

漏洞名称:Apache Struts2 S2-062(CVE-2021-31805)

发布时间:2022年4月12日

修复版本:Apache Struts2 2.5.30

影响范围:Apache Struts2 2.0.0至2.5.29

漏洞类型:远程代码执行(RCE)

漏洞成因

S2-062漏洞是由于2020年S2-061(CVE-2020-17530)漏洞的不完整修复造成的,当开发人员使用了%{…}语法进行强制OGNL解析时,仍有一些特殊的TAG属性可被二次解析,攻击者可构造恶意的OGNL表达式触发漏洞,从而实现远程代码执行。

漏洞细节

OGNL表达式滥用:Struts2在处理某些标签属性(如id)时,会对属性值进行二次表达式解析,这可能导致在某些场景下远程代码执行。

绕过沙箱限制:研究人员发现了一种方法,可以通过创建BeanMap并使用其setBean和put函数来清除excludedPackageNames和excludedClasses,从而取消沙箱限制,实现更广泛的代码执行。

ST2漏洞,您了解多少?如何防范?插图3

影响范围

该漏洞影响了Apache Struts2从2.0.0到2.5.29的所有版本,由于Struts2是一个广泛使用的Web应用框架,特别是在大型互联网企业、政府、金融机构等网站建设中,因此该漏洞的潜在影响范围非常广泛。

漏洞复现步骤

以S2-015漏洞为例,复现步骤如下(这些步骤仅用于教育目的,实际操作可能涉及非法行为):

1、进入到S2-015的环境目录下并启动环境。

2、访问靶机(如http://192.168.100.244:8080)。

3、使用抓包工具(如Burp Suite)修改数据包,插入POC(Payload of Consequence),并进行URL编码。

   %24%7B%23context%5B%27xwork.MethodAccessor.denyMethodExecution%27%5D%3Dfalse%2C%23m%3D%23_memberAccess.getClass%28%29.getDeclaredField%28%27allowStaticMethodAccess%27%29%2C%23m.setAccessible%28true%29%2C%23m.set%28%23_memberAccess%2Ctrue%29%2C%23q%3D@org.apache.commons.io.IOUtils@toString%28@java.lang.Runtime@getRuntime%28%29.exec%28%27whoami%27%29.getInputStream%28%29%29%2C%23q%7D.action

注意:实际使用时需要根据具体情况调整POC内容。

防护措施

为防止Struts2漏洞被利用,建议采取以下措施:

1、更新软件版本:将Struts2升级到最新的安全版本(如2.5.30或更高版本)。

ST2漏洞,您了解多少?如何防范?插图5

2、限制使用:避免在生产环境中使用存在已知漏洞的旧版本软件。

3、输入验证与过滤:对所有用户输入进行严格的验证和过滤,以防止恶意代码注入。

4、安全配置:配置Web服务器和应用服务器的安全设置,限制不必要的访问权限。

5、定期审计与监控:定期对系统进行安全审计和监控,及时发现并处理潜在的安全威胁。

信息仅供参考,实际操作时应遵循相关法律法规和最佳实践。

小伙伴们,上文介绍st2 漏洞的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/87012.html

小末小末
上一篇 2024年10月29日 13:17
下一篇 2024年10月29日 13:49

相关推荐