struts漏洞解決方法
阿新 • • 發佈:2019-01-03
解決方案:
1、刪除jar包
freemarker-2.3.8.jar
xwork-2.0.7.jar
ognl-2.6.11.jar
struts2-core-2.0.14.jar
struts2-jfreechart-plugin-2.0.11.jar
struts2-spring-plugin-2.0.11.jar
2、新增jar包
commons-lang3-3.2.jar
freemarker-2.3.22.jar
javassist-3.11.0.GA.jar
ognl-3.0.14.jar
struts2-config-browser-plugin-2.3.28.1.jar
struts2-core-2.3.28.1.jar
struts2-jfreechart-plugin-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
3、修改web.xml檔案
將原先的過濾器配置
struts2
org.apache.struts2.dispatcher.FilterDispatcher
替換為
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
4、修改struts.xml檔案(可選)
如果之前有模組的struts配置檔案使用了動態代理,而且升級後之後還要繼續使用這一特性,則要在struts.xml檔案中,開啟動態代理。配置入下:
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
(1)struts2-core-2.1.1.jar解壓后里面有個template目錄,下面是標籤的格式,你可以修改的
1、刪除jar包
freemarker-2.3.8.jar
xwork-2.0.7.jar
ognl-2.6.11.jar
struts2-core-2.0.14.jar
struts2-jfreechart-plugin-2.0.11.jar
struts2-spring-plugin-2.0.11.jar
2、新增jar包
commons-lang3-3.2.jar
freemarker-2.3.22.jar
javassist-3.11.0.GA.jar
ognl-3.0.14.jar
struts2-config-browser-plugin-2.3.28.1.jar
struts2-core-2.3.28.1.jar
struts2-jfreechart-plugin-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
3、修改web.xml檔案
將原先的過濾器配置
struts2
org.apache.struts2.dispatcher.FilterDispatcher
替換為
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
4、修改struts.xml檔案(可選)
如果之前有模組的struts配置檔案使用了動態代理,而且升級後之後還要繼續使用這一特性,則要在struts.xml檔案中,開啟動態代理。配置入下:
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
並同時修改模組的strutsxxx.xml檔案中的寫法,將原先的:
<result name="add" type="redirect-action">msgShow_add?opType=add&msgFlag=2&msg=success</result>
更改為:
<result name="add" type="redirectAction">msgShow_add?opType=add&msgFlag=2&msg=success</result>
(1)struts2-core-2.1.1.jar解壓后里面有個template目錄,下面是標籤的格式,你可以修改的
標籤定義的META-INF目錄下,有個檔案struts-tags.tld
(2)所有要修改的檔案