启嘟渡科技商贸有限公司
SEARCH

与我们合作

我们专注提供互联网一站式服务,助力企业品牌宣传多平台多途径导流量。
主营业务:网站建设、移动端微信小程序开发、营销推广、基础网络、品牌形象策划等

您也可通过下列途径与我们取得联系:

微 信: wxyunyingzhe

手 机: 15624122141

邮 箱:

关于CVE-2021-31805 Apache Struts2 远程代码执行漏洞,你了解多少

更新时间:2024-12-23 02:58:28

Apache Struts2是一个广泛使用的Java EE网络应用程序框架,用于开发网页应用程序。官方近期发布了风险通告,漏洞编号为CVE-2021-31805,涉及版本范围从2.0.0到2.5.29的Apache Struts2。该漏洞源于CVE-2020-17530修复不完整。针对此漏洞,以下提供了解决方案和环境搭建步骤。

解决方案包括三个步骤:

修改Maven pom文件,将Struts2版本更改为2.5.26。

在前端jsp文件中,通过%{payload}修改name属性标签,实现数据赋值。

调整action类结构,确保能够正确处理修改后的请求参数。

为了更好地理解漏洞产生的原理,需要对Apache Struts2的架构和OGNL语法有所了解。Struts2架构概述包括客户端提交请求、核心处理器协调控制、拦截器功能应用、Action方法执行以及结果输出。OGNL语法用于获取和设置Java对象属性,执行对象属性获取、方法调用以及类型转换。

漏洞原理在于jsp中的类使用了两次OGNL评估,导致某些UIBean标记的名称属性容易受到攻击。这涉及到name属性的递归检查和OGNL解析过程,如果不对name进行第二次解析,攻击者提供的参数可能不会被正确注入。然而,在某些情况下,参数会被重复解析,从而实现远程代码执行。

要深入探索这一过程,可以使用调试工具对关键函数进行动态分析。通过设置断点,观察代码执行流程,包括标签解析、属性判断、表达式赋值和解析等步骤,直至发现漏洞利用的完整路径。

针对沙箱绕过,需要理解命令执行方式的变化以及如何创建BeanMap对象。在某些版本中,通过特定语法绕过安全限制,实现远程代码执行。

为了防止此漏洞,用户应尽快升级到官方发布的安全版本。官方提供了修复版本信息,用户可以通过相关链接获取。

对于更多详细信息和技术支持,欢迎关注“星阑科技”和“星阑PortalLab”微信公众号,获取技术干货和最新消息。

多重随机标签

猜你喜欢文章

QQ客服 电话咨询