Apache struts2 namespace远程命令执行_CVE-2018-11776(S2-057)漏洞复现
一、漏洞描述
S2-057漏洞产生于网站配置xml的时候,有一个namespace的值,该值并没有做详细的安全过滤导致可以写入到xml上,尤其url标签值也没有做通配符的过滤,导致可以执行远程代码,以及系统命令到服务器系统中去 。
二、漏洞影响版本
Apache struts 2.3-Apache struts 2.3.34
Apache struts 2.5-Apache struts 2.5.16
三、漏洞环境搭建以及复现
Win7+tomcat7.0+struts-2.5.16
1、下载struts 2.5.16官方示例showcase
2、把下载的struts2-showcase放到tomcat的webapps目录下
3、修改struts-actionchaining.xml,发现有两处需要修改
4、修改struts-actionchaining.xml,将namespace删除, 将 result 类型改为 redirectAction
修改为如下:
<struts> <package name="actionchaining" extends="struts-default"> <action name="actionChain1" class="org.apache.struts2.showcase.actionchaining.ActionChain1"> <result type="redirectAction"> <param name = "actionName">register2</param> </result> </action> </package> </struts>