news

深信服,让it更简单、更安全、更有价值

/ 2016-03-20

近日,apache struts2 发布的最新安全公告s2-029中显示,struts2 存在远程代码执行漏洞。struts 2.0.0 – struts2.3.24.1 版本均受到该漏洞影响。这个漏洞危险级别被定义为高危,漏洞 cve 编号:cve-2016-0785。目前,深信服提供了apache struts2 s2-029 远程代码执行漏洞的本地检测方案。



背景介绍
struts2 是全球使用最广泛的 javaweb 服务器框架之一。struts2 是 struts 的下一代产品,是在 struts1和 webwork 的技术基础上进行了合并的全新的 struts2 框架。

之前 s2-005,s2-009,s2-013,s2-016,s2-20 都存在远程命令执行漏洞,使得大量的网站系统遭受入侵。因此,该漏洞一经曝光就在安全圈内引起轩然大波。

漏洞概要

s2-029 漏洞产生原因主要在于,struts2的标签库使用 ognl 表达式来访问 actioncontext 中的对象数据,为了能够访问到actioncontext 中的变量,struts2 将 actioncontext 设置为 ognl 的上下文,并将 ognl 的根对象加入 actioncontext 中。


用户可以控制特定标签的属性,通过 ognl 二次计算可以执行任意命令。例如:

parameters:

 

这个标签就调用了 ognl 进行取值,struts2 会解析 value 中的值,并当作 ognl 表达式进行执行。


ognl第一次计算:
ognl表达式为 #parameters.msg,计算后得到 parameters的属性,并将其属性值赋值给 value。
ognl第二次计算:
对上面获取的属性值继续做 ognl表达式执行

漏洞检测

深信服提供了apache struts2 s2-029 远程代码执行漏洞的本地检测方案:

1、新建文件test.jsp,文件内容如下图所示:


2、将上述test.jsp文件放入网站根目录;
3、打开浏览器访问文件test.jsp,例如:http://www.xxx.com/test.jsp;
4、查看网站服务器 /tmp 目录下是否有sangfor_test文件生成,若有此文件生成,则证明网站存在apache struts2 s2-029 远程代码执行漏洞。

该检测方案已在深信服下一代防火墙凯发登录主页进行实时提醒,如果您未购买下一代防火墙设备,请访问深信服安全中心获取检测工具:

修复建议

1、建议用户严格验证新添加的 struts 标签参数的属性;

2、建议用户将struts升级至 2.3.26版本;
3、对于暂时无法进行升级的低版本用户,建议修改系统 restactionmapper.java 源文件,防止 ognl 表达式多次执行,具体修改方法如下图:


点击以下链接,即可访问深信服安全中心获取检测工具:






  • / 2020-02-15
  • / 2020-02-14
  • / 2020-02-15

©2000-2020    深信服科技股份有限公司    凯发注册网站的版权所有   

"));
网站地图