如何分析Apache Struts2-052 漏洞分析预警

发布时间:2021-12-28 15:03:39 作者:柒染
来源:亿速云 阅读:102

本篇文章给大家分享的是有关如何分析Apache Struts2-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 官方安全通告

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 漏洞影响面


1、影响面

确定CVE-2017-9805为高危漏洞。

实际场景中存在一定局限性,需要满足一定条件,非struts本身默认开启的组件。

2、影响版本

Version 2.5.0 to 2.5.12

Version 2.3.0 to 2.3.33

3、修复版本

Struts 2.5.13

Struts 2.3.34

0x02 漏洞详情


1、技术细节

如何分析Apache Struts2-052 漏洞分析预警

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

在struts2 rest-plugin 中的处理逻辑里接受到对应格式的消息时,会调用已经注册的对应`handler`的

`handler.toObject`方法对其进行实例化,在这里传入的xml消息,所以就会跳转到已经定义的`XStreamHandler`的`toObject`方法

如何分析Apache Struts2-052 漏洞分析预警

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

如何分析Apache Struts2-052 漏洞分析预警

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

2、漏洞修复

如何分析Apache Struts2-052 漏洞分析预警

新版本中增加了`XStreamPermissionProvider`

如何分析Apache Struts2-052 漏洞分析预警

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

0x03 漏洞利用验证


如何分析Apache Struts2-052 漏洞分析预警

0x04 修复建议


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

```

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

```

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

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

以上就是如何分析Apache Struts2-052 漏洞分析预警,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. Struts2 - 配置备忘
  2. bootstrap如何适配

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

struts2

上一篇:ajax原始请求的示例分析

下一篇:如何用spring源码剖析spring bean循环依赖

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》