当前位置:安全客 >> 知识详情

【漏洞分析】Apache Struts2–052 漏洞分析预警

2017-09-06 14:17:39 阅读:16373次 收藏 来源: 安全客 作者:360CERT

http://p8.qhimg.com/t018fc33238c3196ce4.png

传送门


【漏洞预警】Apache Struts2插件高危漏洞(S2-052)


0x00 漏洞描述


The REST Plugin is using a XStreamHandler with an instance of XStream for deserialization without any type filtering and this can lead to Remote Code Execution when deserializing XML payloads. -- Apache Struts 官方安全通告(参考1)

2017年9月5日,Apache Struts发布最新安全公告,Apache Struts2的REST插件存在远程代码执行的高危漏洞,该漏洞由lgtm.com的安全研究员汇报,漏洞编号为CVE-2017-9805(S2-052)。Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。

Struts2启用了rest-plugin后并编写并设置了XStreamHandler后,可以导致远程命令执行这一严重问题。


0x01 漏洞影响面


影响面

确定CVE-2017-9805为高危漏洞。 实际场景中存在一定局限性,需要满足一定条件,非struts本身默认开启的组件。

影响版本

Version 2.5.0 to 2.5.12

Version 2.3.0 to 2.3.33

修复版本

Struts 2.5.13

Struts 2.3.34


0x02 漏洞详情


技术细节

http://p1.qhimg.com/t014012de39a6a942d6.png

文件/org/apache/struts2/rest/ContentTypeInterceptor.java

在struts2 rest-plugin 中的处理逻辑里接受到对应格式的消息时,会调用已经注册的对应handlerhandler.toObject方法对其进行实例化,在这里传入的xml消息,所以就会跳转到已经定义的XStreamHandler的toObject方法

http://p4.qhimg.com/t01e79ea8c5dac5b1d4.png

在经过此处的fromXML方法后导致实例化的恶意对象被执行,导致恶意代码执行

http://p2.qhimg.com/t016043e783ad237e51.png

随即看到计算器被成功弹出

漏洞修复

http://p5.qhimg.com/t018b3a10cb9be0188e.png

新版本中增加了XStreamPermissionProvider


http://p1.qhimg.com/t012ef7adb973ecfdd4.png

并且对原先有问题的createXStream进行重写,增加了校验,拒绝不安全的类执行


0x03 漏洞利用验证


http://p1.qhimg.com/t01e68ebcbdcb96c38f.png


0x04 修复建议


1.官方建议设置插件处理的数据类型限定为json

<constant name="struts.action.extension" value="xhtml,,json" />

2.升级Struts到2.5.13版本或2.3.34版本

3.在XStreamHandler中进行数据校验或检查


0x05 时间线


2017-09-05 漏洞披露

2017-09-06 360CERT发布预警分析通告


0x06 参考链接


Apache Struts 安全通告 http://struts.apache.org/docs/s2-052.html


传送门


【漏洞预警】Apache Struts2插件高危漏洞(S2-052)



本文由 安全客 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/4372.html

参与讨论,请先 | 注册 | 匿名评论
发布
用户评论
艺术家OG 2017-09-07 16:19:40
回复 |  点赞

亲,全家桶哦~

万能的张老师 2017-09-07 09:35:46
回复 |  点赞

关于影响版本,为何与 CVE官网描述不一致?

土司观光团 2017-09-07 09:44:11
回复 |  点赞

2.3全系也有问题

万能的张老师 2017-09-07 09:35:46
回复 |  点赞

关于影响版本,为何与 CVE官网描述不一致?

万能的张老师 2017-09-07 09:35:46
回复 |  点赞

关于影响版本,为何与 CVE官网描述不一致?

查看更多