安全研究

Apache Struts2 远程代码执行漏洞

漏洞描述

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。
Apache Struts2存在S2-057远程代码执行漏洞,当定义xml配置时,namespace没有设置,并且上层操作没有设置或者使用的是通配符namespace时,可能导致远程命令执行,当使用没有设置value和action的url标签的时候也会导致相同的漏洞

漏洞评级

高危

影响范围

1、定义XML配置时namespace值未设置且上层动作配置(Action Configuration)中未设置或用通配符namespace可能会导致远程代码执行。
2、url标签未设置value和action值且上层动作未设置或用通配符namespace可能会导致远程代码执行。
影响版本:
Apache Struts2 >=2.3,<=2.3.34
Apache Struts2 >=2.5,<=2.5.16

修复建议

1、请尽快升级到Apache Struts版本2.3.35或2.5.17,因为它们还包含关键的主动性整体安全方面的改进。
2、验证您是否以namespace为基础,将xml配置文件中的所有已定义结果设置。同时要验证在你的JSP文件中已经给所有url标签设置value或者action。
3、已部署使用帕拉迪下一代WEB应用防护系统NGWAF的客户,利用专有的动态建模技术,无须升级安全策略即完美拦截利用该漏洞的攻击。
Copyright © 2019 All Rights Reserved Designed
杭州帕拉迪网络科技有限公司