美文网首页
S2-52 分析

S2-52 分析

作者: xbeark | 来源:发表于2017-09-07 16:28 被阅读0次

    From: S2-52 分析(含POC)

    0x01 漏洞描述

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

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

    xxlegend师傅已经分析了官方缓解措施无效《S2-052漏洞分析及官方缓解措施无效验证》

    建议升级到Struts 2.5.13 or Struts 2.3.34

    0x02 测试环境

    使用struts官方showcase, 2.5.12、2.3.33及以下,下载地址: https://archive.apache.org/dist/struts/

    载入工程,apps目录下rest-showcase为可进行。

    image.png

    0x03 漏洞分析

    struts2的ContentTypeInterceptor会根据ContentType、url后缀寻找响应的处理handler,并调用handler相关的反序列化函数。xml形式的restfull请求转至XStreamHandler进行处理。

    image.png

    struts2-rest-plugin请求处理handler定义:

    image.png

    XStreamHandler在没有进行任何验证的情况下直接反序列化xml形式的数据。

    image.png

    这里在调试的是否发现一坑,反序列化的栈中若只有一个对象,将会导致直接返回toObject函数传入的target对象。

    image.png image.png

    0x04 POC执行

    目前公布的POC由于使用了jdk.nashorn,javax.imageio,需要用jdk1.8以上。

    POC执行链

    image.png

    最终在ImageIO$ContainsFilter.filter中触发POC构造的命令执行

    image.png image.png

    相关文章

      网友评论

          本文标题:S2-52 分析

          本文链接:https://www.haomeiwen.com/subject/eiabjxtx.html