警告!Struts2漏洞于昨日再次爆发(struct2漏洞原理)
2016年4月26日Struts2官方发布了Apache Struts 2任意代码执行漏洞(CVE-2016-3081, S02-32),该漏洞主要原因为在开启动态方法调用(DMI)的情况下,黑客可以利用漏洞直接执行任意代码,这一漏洞影响的软件版本为2.3.20-2.3.28,不过2.3.20.2、2.3.24.2两个版本除外,建议尽快升级到相应的最新版本,并关闭DMI。
这是自2012年Struts2命令执行漏洞大规模爆发之后,该服务时隔四年再次爆发大规模漏洞。
Apache Struts 2任意代码执行漏洞(CVE-2016-3081, S02-32)属于高危险漏洞,据乌云平台漏洞报告,目前漏洞利用代码已经被强化,可直接通过浏览器的提交对服务器进行任意操作并获取敏感内容。Struts漏洞影响巨大,受影响站点以电商、银行、门户、政府居多,而且一些自动化、傻瓜化的利用工具开始出现,填入地址可直接执行服务器命令,读取数据甚至直接关机等操作。
目前用户可通过三种方式进行漏洞检测:
1.通过三零卫士三零云安全平台;
2.自行通过互联网工具检测(关注订阅号“e_30wish”,点击下方菜单“漏洞检测”);
3.自行安排人员通过自动化工具检测。
出于慎重考虑,三零服务网·安全云中心已主动在所有的客户单位门户网站进行该漏洞的安全评估,并将于4月29日进行结果通告。
漏洞修复方法
1.关闭动态方法调用
1)确认关闭该功能是否对应用系统业务有影响,若影响正常业务运行,则采 用第二种修复方法。
2)修改 Struts2 的配置文件struts.xml,该文件默认目录为src/struts.xml,将“struts.enable.DynamicMethodInvocation” 设置为false,如:
<constantname="struts.enable.DynamicMethodInvocation" value="false"/>;
2.升级 Struts 版本
将Struts 版本至 Struts 2.3.20.2, Struts 2.3.24.2或者 Struts2.3.28.1以上版本,参考链接:https://struts.apache.org/download.cgi#struts23281
3.修复注意事项
为了降低修复所造成的风险,建议采取以下措施:
1. 选择非工作时间实施修复工作。
2. 实施前,将应用系统、重要数据库进行全备份工作。
3. 实施前,建议搭建测试环境,在测试环境成功实施后,再正式开始实施。
4. 实施过程中,需要应用系统开发商提供相关人员进行后台支持,一旦出现异常,配合进行回退工作。
5. 修复完成后,对应用系统各项功能进行测试,并在后期持续进行观察。