struts2由版本2.3.16升级至2.5.22

  • Post author:
  • Post category:其他


背景:公司安全部门,扫描到N年前的老系统有高危漏洞,我作为技术负责人,需要处理。

过程:详细看了高危漏洞文档说明,是struts2的远程命令执行漏洞,升级版本可完成修复,通过网上各类帖子的说明,结合自身项目。把升级需要改动的内容罗列如下。

  1. 修改struts.xml文件



序号



行数



原内容



修改后内容


1


第3行


<!DOCTYPE struts PUBLIC


“-//Apache Software Foundation//DTD Struts Configuration 2.3//EN”






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



“>


<!DOCTYPE struts PUBLIC


“-//Apache Software Foundation//DTD Struts Configuration 2.5//EN”






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



“>


2


第22行


<package name=”imageupload” extends=”json-default”>


<package name=”imageupload” extends=”json-default” strict-method-invocation=”false”>

  1. 修改web.xml文件



序号



行数



原内容



修改后内容


1


第92-95行


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


<filter-class>



org.apache.struts2.dispatcher.ng



.filter.StrutsPrepareAndExecuteFilter</filter-class>


</filter>


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


<filter-class>



org.apache.struts2.dispatcher



.filter.StrutsPrepareAndExecuteFilter</filter-class>


</filter>

  1. 替换jar


序号


需要替换的jar


说明


下载地址


1


struts2-config-browser-plugin-2.5.22.jar


struts2-2.5.22版本包


https://archive.apache.org/dist/struts/2.5.22/


2


struts2-convention-plugin-2.5.22.jar


3


struts2-core-2.5.22.jar


4


struts2-json-plugin-2.5.22.jar


5


struts2-spring-plugin-2.5.22.jar


6


commons-lang3-3.8.1.jar


依赖包


7


freemarker-2.3.28.jar


8


log4j-api-2.6.2.jar



http://archive.apache.org/dist/logging/log4j/2.6.2


9


log4j-core-2.6.2.jar


10


ognl-3.1.26.jar

  1. 创建log4j2.xml


位置:/project/WEB-INF/classes/log4j2.xml


<?xml version=”1.0″ encoding=”UTF-8″?>


<configuration status=”debug”>


<appenders></appenders>


<loggers>


<root level=”info”>


<appender-ref ref=”Console”/>


<appender-ref ref=”log”/>


</root>


</loggers>


</configuration>



版权声明:本文为linjunjie369865393原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。