虚拟主机域名注册-常见问题虚拟主机问题 → 虚拟主机问题


Struts2相关漏洞说明及处理办法
作者:昕邦互联

Struts2相关漏洞说明:

[+] S2-020  CVE-2014-0094   支持GetShell

[+] S2-019  CVE-2013-4316   支持GetShell/获取物理路径/执行CMD命令

[+] S2-016  CVE-2013-2251   支持GetShell/获取物理路径/执行CMD命令

[+] S2-013  CVE-2013-1966   支持GetShell/获取物理路径/执行CMD命令

[+] S2-009  CVE-2011-3923   支持GetShell/获取物理路径/执行CMD命令

[+] S2-005  CVE-2010-1870   支持GetShell/获取物理路径/执行CMD命令/列文件目录


CVE-2014-0094  影响版本:Struts 2.0.0 – Struts 2.3.16    官方公告:http://struts.apache.org/release/2.3.x/docs/s2-020.html

CVE-2013-4316  影响版本:Struts 2.0.0 – Struts 2.3.15.1  官方公告:http://struts.apache.org/release/2.3.x/docs/s2-019.html

CVE-2013-2251  影响版本:Struts 2.0.0 – Struts 2.3.15    官方公告:http://struts.apache.org/release/2.3.x/docs/s2-016.html

CVE-2013-1966  影响版本:Struts 2.0.0 – Struts 2.3.14    官方公告:http://struts.apache.org/release/2.3.x/docs/s2-013.html

CVE-2011-3923  影响版本:Struts 2.0.0 -  Struts 2.3.1.1   官方公告:http://struts.apache.org/release/2.3.x/docs/s2-009.html

CVE-2010-1870  影响版本:Struts 2.0.0 – Struts 2.1.8.1   官方公告:http://struts.apache.org/release/2.2.x/docs/s2-005.html


解决办法:

将struts2的jar包更新到最新版,目前最新版本2.3.16.3

http://mirrors.cnnic.cn/apache//struts/binaries/struts-2.3.16.3-all.zip


本文记录Struts2-2.3.4升级到2.3.16.3并且最少化改动已有工程代码的情况下的步骤,实际升级可能还有其他不可预知的问题,需要您根据实际情况处理

1.删除的jar包

jsonplugin-0.30.jar(此jar由struts2-json-plugin-2.3.16.3.jar代替,如果以前采用过其他jsonplugin插件的话)

2.添加的jar包

commons-lang3-3.1.jar

struts2-json-plugin-2.3.16.3.jar

3.替换的jar包

将原有低版本的ognl-x.x.x.jar替换为ognl-3.0.6.jar

将原有低版本的struts2-core-x.x.x.x.jar替换为struts2-core-2.3.16.3.jar

将原有低版本的xwork-core-x.x.x.x.jar替换为xwork-core-2.3.16.3.jar

将原有低版本的javassist-x.x.x.jar替换为javassist-3.11.0.GA.jar

4.xwork-conversion.properties

注释掉java.lang.Enum=com.opensymphony.xwork2.util.EnumTypeConverter

5.替换工程中所有*.xml Struts配置文件中type="redirect-action"为type="redirectAction",并将xml的头部信息修改为:

<!DOCTYPE struts PUBLIC  

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

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

6.修改struts.xml中返回类型为json的处理类相关的配置。(如果你的工程原来采用的是其他的json类型处理插件的话)

将其中片段修改成如下状态:

<result-types>  

            <!-- 添加的自定义类型JSON对象 -->  

            <!-- 

                <result-type name="json" class="com.googlecode.jsonplugin.JSONResult" /> 

            -->  

            <result-type name="json" class="org.apache.struts2.json.JSONResult" />  

</result-types>  

7.所有涉及到jsonplugin-0.30.jar的类由struts2-json-plugin-2.3.16.3.jar中的对应类替换。(如果你的工程原来采用的是其他的json类型处理插件的话)

8.struts2标签库的升级

将原有的struts-tag.tld升级为最新。

另外最重要的一点,如果您是自主部署的java环境,请务必不要使用root或者管理员账号来运行java应用!!




来源: 昕邦互联
阅读:2234
日期:2015/11/7

【 双击滚屏 】 【 推荐朋友 】 【 收藏 】 【 打印 】 【 关闭 】 【 字体: 】 
上一篇:常见漏洞知识库
下一篇:虚拟主机/VPS/云主机架设网站流程
  >> 相关文章