Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架。
Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。(来自百度百科)
最近,Struts 2被曝存远程代码执行漏洞。
漏洞名:Struts 2中基于Jakarta Multipart parser的文件上传存在远程命令执行漏洞(S2-045,CVE-2017-5638)
影响范围:
Struts 2.3.5--Struts 2.3.31
Struts 2.5--Struts 2.5.10
漏洞描述:当上传的文件的Content-Type无效时,struts返回错误信息时调用了表达式使得命令被执行
修复方案:如果使用的是基于Jakarta Multipart parser的文件上传,升级到Struts 2.3.32 或者Struts 2.5.10.1,也可以通过使用其他上传解析器来修复该漏洞
报告地址:https://cwiki.apache.org/confluence/display/WW/S2-045?from=timeline&isappinstalled=0