freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Apache Struts 2 远程代码执行 (CVE-2018-11776)漏洞分析
2019-06-16 16:31:32

一、漏洞背景

Apache软件基金会在Apache Struts中宣布了一个最新的远程代码执行漏洞,Apache Struts是一个现在较为主流的开源框架,是用于使用Java编程语言开发Web应用程序。目前使用Apache Struts部分版本开发的应用程序可能存在漏洞。该漏洞对应的CVE编号为CVE-2018-11776。

二、漏洞概要

谁应该读这个 所有Struts 2的开发者和用户
漏洞的影响 可能的远程代码执行使用没有namespace和同时的结果时,其上面的操作没有或没有通配符namespace。使用url没有valueaction设置的标签时的可能性相同。
最高安全等级 危急
建议 升级到Struts 2.3.35或Struts 2.5.17
受影响的软件 Struts 2.3 - Struts 2.3.34,Struts 2.5 - Struts 2.5.16 不受支持的Struts版本也可能受到影响
记者 来自Semmle安全研究团队的Man Yue Mo.
CVE标识符 CVE-2018-11776

三、搭建环境

修改struts核心配置文件struts-actionchaining.xml,没有为namespace赋值,并且配置了重定向action。

 图片.png

   在ActionChain1中,添加execute的调试方法进行验证。

 图片.png

http://localhost:8080/struts2-showcase/${(333+333)}/actionChain1.action,OGNL表达式顺利的被执行

 图片.png

执行到execute方法。

 图片.png

已跳转到指定的action页面register2。

 图片.png

输入特定的payload,触发漏洞,弹出计算器。

 图片.png

四、触发条件

1.使用Struts 2.3 - Struts 2.3.34,Struts 2.5 - Struts 2.5.16范围内的Apache Struts版本。

 图片.png

2.在struts核心配置XML上层action中“namespace”值为缺省值时,或“namespace”通配符为(“/*”)时可能会导致web应用远程代码执行漏洞。

 图片.png

3.在struts配置“struts.mapper.alwaysSelectFullNamespace = true”,配置此属性的目的是,是否在最后一个斜线之前的任何位置选定”NameSpace”。   

 图片.png

4.在struts核心配置XML文件中配置result标签返回的类型选择 “type= redirectAction” , 这个类型是为了将用户重定向到一个已定义的好的action。

 图片.png

五、漏洞分析

“DefaultActionMapper”调用”parseNameAndNamespace()”用来解析“namenamespace”和”name”。

 图片.png

当alwaysSelectFullNamespace 的value值为true时,namespace的值可通过uri控制。

图片.png

执行完action后,ServletActionRedirectResult调用execute()进行重定向Result,通过ActionMapper.getUriFromActionMapping()对namespace和name进行重新定义,然后用setLocation()将带namespace的location放入父类StrutsResultSupport中。

 图片.png

父类StrutsResultSupport拿到location后,通过TextParseUtil.translateVariables()调用OgnlTextParser的evaluate方法,此方法就是最终解释Ognl表达式的语句,所以最终导致解析执行url中的OGNL表达式。

 图片.png

六、修复建议

建议将Apache Struts升级到最新版本2.3.35或是Apache Struts最新版本2.5.17,直接升级即可官方已经做好漏洞补丁,预计不会出现向后不兼容的问题。

七、参考链接

https://cwiki.apache.org/confluence/display/WW/S2-057

https://lgtm.com/blog/apache_struts_CVE-2018-11776


关注我们

Tide安全团队正式成立于2019年1月,是以互联网攻防技术研究为目标的安全团队,目前聚集了十多位专业的安全攻防技术研究人员,专注于网络攻防、Web安全、移动终端、安全开发、IoT/物联网/工控安全等方向。

想了解更多Tide安全团队,请关注团队官网: http://www.TideSec.net 或关注公众号:

1551433162_5c78fdca9fae9.jpg

# CVE-2018-11776
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者