Struts2漏洞2.0.xx或2.3.28.1升级为Struts-2.5.12

来源:互联网 发布:寒战2 知乎 编辑:程序博客网 时间:2024/06/05 02:39

搞了好纠结,终于被我搞定了。

1、struts2.0.X升级到struts-2.5.12则删除以下原先WEB-INF/lib中jar包:

路径:..\xxx\WEB-INF\lib,删除14个jar

commons-fileupload-1.2.1.jar

commons-io-1.4.jar

commons-lang-2.3.jar

commons-logging-1.0.4.jar

freemarker-2.3.8.jar

javassist-3.4.GA.jar

log4j-1.2.9.jar

json-lib-2.1-jdk15-j4.jar

jsonplugin-0.31-j4.jar

ognl-2.6.11.jar

struts2-codebehind-plugin-2.0.9-j4.jar

struts2-core-j4-2.0.9.jar

struts2-spring-plugin-2.0.9-j4.jar

xwork-j4-2.0.4.jar

xerces-2.6.2.jar

 

struts2.3.28.1升级到struts-2.5.12则删除以下原先WEB-INF/lib中jar包:

路径:..\xxx\WEB-INF\lib,删除12个jar

commons-fileupload-1.2.1.jar

commons-io-2.2.jar

commons-lang-2.3.jar

commons-lang3-3.2.jar

freemarker-2.3.22.jar

javassist-3.11.0.GA.jar

log4j-1.2.9.jar

ognl-3.0.14.jar

struts2-core-2.3.28.1.jar

struts2-json-plugin-2.3.28.1.jar

struts2-spring-plugin-2.3.28.1.jar

xwork-core-2.3.28.1.jar

xerces-2.6.2.jar

 

3、将libs.rar压缩包解压,添加到WEB-INF/lib中:

路径:..\xxx\WEB-INF\lib,增加15个jar

commons-fileupload-1.3.3.jar

commons-io-2.4.jar

commons-lang-2.4.jar

commons-lang3-3.6.jar

commons-logging-1.1.3.jar

freemarker-2.3.23.jar

javassist-3.20.0-GA.jar

log4j-1.2-api-2.8.2.jar

log4j-api-2.8.2.jar

log4j-core-2.8.2.jar

json-lib-2.3-jdk15.jar

ognl-3.1.12.jar

struts2-core-2.5.12.jar

struts2-json-plugin-2.5.12.jar

struts2-spring-plugin-2.5.12.jar

 

4、修改xxx中web.xml配置文件

路径:..\xxx\WEB-INF

原内容:

<filter>

         <filter-name>struts2</filter-name>

         <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>

</filter>

 

修改成:

<filter>

         <filter-name>struts2</filter-name>

         <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

 

5、新增文件log4j2.xml

路径xxx\WEB-INF\classes\ log4j2.xml

 

6、修改xxx中struts.xml配置文件

路径:..\xxx\WEB-INF\classes

在原内容的基础上<struts>标签里添加

<constant name="struts.enable.DynamicMethodInvocation"value=" true " />

<constantname="struts.action.excludePattern"value="/dwr/.*,/services/.*"/>

 

原内容:

<struts>

         <includefile="struts.xml"></include>

</struts>

 

修改后:

<struts>

         <constantname="struts.enable.DynamicMethodInvocation" value="true" />

         <constant name="struts.action.excludePattern"value="/dwr/.*,/services/.*"/>

        <includefile="struts.xml"></include>

</struts>

 

7、如下文件:

struts.xml

文件申明头需修改,有<package>标签的,属性值加strict-method-invocation="false":

原内容:

<!DOCTYPEstruts PUBLIC  

       "-//Apache Software Foundation//DTD Struts Configuration2.0//EN"  

       "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

         <package name="xxx" extends="struts-default">

         <xxx></xxx>

         </package>

</struts>

修改后:

<!DOCTYPE struts PUBLIC  

       "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"  

       "http://struts.apache.org/dtds/struts-2.5.dtd">

<struts>

         <packagename="xxx" extends="struts-default" strict-method-invocation="false">

         <xxx></xxx>

         </package>

</struts>

8、

修改文件:xxx\resource\json_struts2.jsp

原内容:<s:property value="jsonString" escape="false"/>

修改后:<s:property value="jsonString"escapeHtml="false" />

 

9、查询JDK版本

直接运行Tomcat,可以正常运行就可以,如果启动Tomcat后访问不了,则查询jdk版本。

确保CGS服务器JDK需1.7以上1.8以下。


阅读全文
1 0
原创粉丝点击