关于CVE-2021-31805 Apache Struts2 远程代码执行漏洞,你了解多少
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”微信公众号,获取技术干货和最新消息。
多重随机标签
2022微信表情的意思图解 岳阳湖南速到科技是骗子吗 我的世界后台强行注册 海宁市属于嘉兴市吗 话费购物的软件有哪些 深圳市铭丰庆五金制品有限公司公司简介 画册一般有什么内容 数字媒体艺术设计专业有哪些知名人物 深圳市吉之雅营销策划有限公司怎么样 上海最大的人力中介 廊坊知名装修公司口碑推荐这家公司性价比有多高 蛋糕文案 软件开发项目外包是要注意些什么 怎么用3d max制作一个茶几的效果图 睢县有没有建设中的高速公路 桂林市社保缴费新消息 2022年桂林市社保缴纳基数是多少 以ls lnternet a blessing or a curse写150词左右的英语作文谈谈你的看法 什么店里可以制作实体纪念相册 松原市国土资源局主要职责 中国联通物联网定位包括以下哪些方面 八爪鱼自定义模式的优缺点 如何评价b站2022年历史纪录片英雄之路 上海的闵行区中的行怎么发音 减肥打卡怎么在桌面显示 纸碗能不能在微波炉里使用 郴州房子装修多少钱 数据分析师学习哪些课程快来这里了解下 前端工程师是做什么的 海伦钢琴的高端系列文德隆w123具有哪些技术优势 镇江华润燃气公司怎么样啊