Struts2命令执行漏洞--(升级struts至struts-2.3.28.1版本)

来源:互联网 发布:财神抢红包软件 编辑:程序博客网 时间:2024/05/16 01:02

一、替换jar包
     将下列jar包
commons-beanutils-1.6.jar

commons-beanutils-1.7.jar

commons-collections-2.1.jar

commons-logging-1.0.4.jar

commons-fileupload-1.2.jar
commons-io-1.3.2.jar
commons-logging-1.1.1.jar

freemarker-2.3.8.jar

log4j-1.2.14.jar

ognl-2.6.11.jar

struts2-core-2.0.11.jar

xwork-2.0.4.jar


  替换成

commons-fileupload-1.3.1.jar

commons-io-2.2.jar
commons-logging-1.1.3.jar

freemarker-2.3.22.jar

struts2-core-2.3.28.1.jar

ognl-3.0.14.jar

asm-3.3.jar(新增)

asm-commons-3.3.jar(新增)

commons-lang3-3.2.jar(新增)

javassist-3.11.0.GA.jar(新增)
struts2-convention-plugin-2.3.28.1.jar(新增)
struts2-jasperreports-plugin-2.3.28.1.jar(新增)
struts2-jfreechart-plugin-2.3.28.1.jar(新增)
xwork-core-2.3.28.1.jar(新增)

 

 

 

二、修改配置文件

1.首先修改struts.xml,将struts.xml文件头修改成如下。
<!DOCTYPE struts PUBLIC

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

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

 

2.在struts.xml中增加

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

3.修改web.xml里的Struts2核心控制器:

 <!-- <filter>

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

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

  </filter>

  <filter-mapping>

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

    <url-pattern>*.action</url-pattern>

  </filter-mapping> -->

替换为:
   <filter>

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

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

  </filter>

 

  <filter-mapping>

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

     <url-pattern>*.action</url-pattern>

  </filter-mapping>

 

4.org.apache.commons.lang类包引用修改:

  例如由
  org.apache.commons.lang.xwork.StringUtils
  换成
  org.apache.commons.lang3.StringUtils

 

0 0
原创粉丝点击