struts修復GetShell漏洞,將2.1.8.1升級至2.3.28
阿新 • • 發佈:2019-02-03
struts2.1.8.1升級至2.3.28步驟:
Apache Struts 2是世界上最流行的Java Web伺服器框架之一。然而不幸的是,有安全研究員在Struts 2上發現了一枚遠端程式碼執行漏洞。 目前Apache官方已釋出公告,該漏洞危險級別為高危。
正好手上有個專案的Struts版本較低,存在該漏洞,於是記錄下來:
JAR包修改:
– 新增jar包
javassist-3.11.0.GA.jar
asm-3.3.jar
asm-commons-3.3.jar
asm-tree-3.3.jar
– 更新jar包
commons-fileupload-1.2.1.jar —-> commons-fileupload-1.3.1.jar
commons-io-1.4.jar —-> commons-io-2.2.jar
commons-lang3-3.1.jar —-> commons-lang3-3.2.jar
commons-logging-1.1.1.jar —-> commons-logging-1.1.3.jar
freemarker-2.3.16.jar —-> freemarker-2.3.22.jar
ognl-2.7.3.jar —-> ognl-3.0.13.jar
struts2-convention-plugin-2.1.8.1.jar —-> struts2-convention-plugin-2.3.28.jar
struts2-spring-plugin-2.1.8.1.jar —-> struts2-spring-plugin-2.3.28.jar
struts2-core-2.1.8.1.jar —-> struts2-core-2.3.28.jar
xstream-1.3.1.jar —-> xstream-1.4.8.jar
xwork-core-2.1.6.jar —-> xwork-core-2.3.28.jar
– json相關
json-lib-2.1.jar —-> json-lib-2.3-jdk15.jar
struts2-json-plugin-2.1.8.1.jar —-> struts2-json-plugin-2.3.28.jar
struts2-junit-plugin-2.1.8.1.jar —-> struts2-junit-plugin-2.3.28.jar修改文件型別宣告:
– struts.xml的文件型別宣告修改:
原來:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN"
"http://struts.apache.org/dtds/struts-2.1.dtd">
現在:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
– strtus 2.3.15 版本後, 預設是關閉DMI動態呼叫action 方法這個功能的.
開啟該功能需要在struts.xml中, 增加了下面的配置:
<constant name="struts.enable.DynamicMethodInvocation" value="true" />