• S2-052 RCE漏洞 初步分析


    PS:初步分析,只是分析了Struts2 REST插件的部分,本来菜的抠脚不敢发,但看到各大中心发的也没比我高到哪里去,索性发出来做个记事!

    漏洞描述

    2017年9月5日,Apache Struts发布最新安全公告,Apache Struts2的REST插件存在远程代码执行的高危漏洞,该漏洞由lgtm.com的安全研究员汇报,漏洞编号为CVE-2017-9805(S2-052)。Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。官网漏洞影响范围为Struts 2.5 - Struts 2.5.12,n1nty师傅说测了下2.3.x 的部分版本,也是受影响的。

    Struts2 REST插件

    Struts2是一个 MVC 框架,最初设计 Struts 2 时并没有按 REST 架构进行设计,因此 Struts 2 本质上并不是一个 REST 框架。由于 Struts 2 提供了良好的可扩展性,因此允许通过 REST 插件将其扩展成支持 REST 的框架。REST 插件的核心是 RestActionMapper,它负责将 Rails 风格的 URL 转换为传统请求的 URL。

    RestActionMapper 对 HTTP 请求的处理

    大家看到这种请求方式,又是struts写的,那么可以打打试试。。

    Poc执行流程

    下载了Struts 2.5.12的struts2-rest-showcase的源码,导到eclipse中运行起来,用公布的Poc进行测试:

    分析执行流程

    在Struts2 REST插件中 org.apache.struts2.rest.DefaultContentTypeHandlerManager.getHandlerForRequest(HttpServletRequest request)方法通过Request的contentType

    获取对应处理的Handler

    当我们的contentType为application/xml时使用org.apache.struts2.rest.handler.XStreamHandler处理请求。当Request的Content长度大于0时,调用XStreamHandler.toObject(Reader in, Object target)方法

     经过fromXML方法后导致了恶意代码执行,后门跟XStream跟的头大,暂时先写这些,后面有时间再写中步分析!

    contentType 对应的解释器

    application/xml=org.apache.struts2.rest.handler.XStreamHandler@1b23b43a,
    application/json=org.apache.struts2.rest.handler.JsonLibHandler@27e8b10f,
    multipart/form-data=org.apache.struts2.rest.handler.MultipartFormDataHandler@2aac6a0,
    application/x-www-form-urlencoded=org.apache.struts2.rest.handler.FormUrlEncodedHandler@77fc757f,
    application/xhtml+xml=org.apache.struts2.rest.handler.HtmlHandler@71789dde

    话说XStream出问题了,其他的Handler呢?

  • 相关阅读:
    咖啡生活-享受慵懒的午后时光
    窗体皮肤实现
    编译树莓派2代B型OpenWrt固件实现无线路由器及nodogsplash认证功能
    通过hook实现禁止shift+delete快捷键
    c++ Qt向PHP接口POST文件流
    Qt for Android开发总结
    A previous installation of Qt5 Visual Studio Add-in was detected. Please uninstall it before running this installer解决办法
    windows下Qt5.1 for android开发环境配置
    Qt+mpg123+openal播放MP3流
    RTC搭建android下三层应用程序访问服务器MsSql-客户端
  • 原文地址:https://www.cnblogs.com/Zhujianshi/p/7485689.html
Copyright © 2020-2023  润新知