1.关于CVE-2021-31805 Apache Struts2 远程代码执行漏洞,码下你了解多少?
关于CVE-2021-31805 Apache Struts2 远程代码执行漏洞,码下你了解多少?
Apache Struts2是码下一个广泛使用的Java EE网络应用程序框架,用于开发网页应用程序。码下官方近期发布了风险通告,码下漏洞编号为CVE--,码下golang源码加密涉及版本范围从2.0.0到2.5.的码下Apache Struts2。该漏洞源于CVE--修复不完整。码下针对此漏洞,码下以下提供了解决方案和环境搭建步骤。码下 解决方案包括三个步骤: 修改Maven pom文件,码下将Struts2版本更改为2.5.。码下 在前端jsp文件中,码下勇者传说 源码通过%{ payload}修改name属性标签,码下实现数据赋值。码下 调整action类结构,确保能够正确处理修改后的请求参数。 为了更好地理解漏洞产生的原理,需要对Apache Struts2的空中飞鼠源码架构和OGNL语法有所了解。Struts2架构概述包括客户端提交请求、核心处理器协调控制、拦截器功能应用、Action方法执行以及结果输出。OGNL语法用于获取和设置Java对象属性,执行对象属性获取、ae软件源码方法调用以及类型转换。 漏洞原理在于jsp中的类使用了两次OGNL评估,导致某些UIBean标记的名称属性容易受到攻击。这涉及到name属性的递归检查和OGNL解析过程,如果不对name进行第二次解析,攻击者提供的dump提取 源码参数可能不会被正确注入。然而,在某些情况下,参数会被重复解析,从而实现远程代码执行。 要深入探索这一过程,可以使用调试工具对关键函数进行动态分析。通过设置断点,观察代码执行流程,包括标签解析、属性判断、表达式赋值和解析等步骤,直至发现漏洞利用的完整路径。 针对沙箱绕过,需要理解命令执行方式的变化以及如何创建BeanMap对象。在某些版本中,通过特定语法绕过安全限制,实现远程代码执行。 为了防止此漏洞,用户应尽快升级到官方发布的安全版本。官方提供了修复版本信息,用户可以通过相关链接获取。 对于更多详细信息和技术支持,欢迎关注“星阑科技”和“星阑PortalLab”微信公众号,获取技术干货和最新消息。