Struts 2 曝高危漏洞(S2-052),黑客可远程执行任意代码

  • 来源:深信服安全中心
  • 发布时间:2017-09-08
#

事件描述

    Apache 官方发布 Struts 2 紧急漏洞公告(S2-052),CVE 编号CVE-2017-9805。公告中披露,Struts2 REST插件的XStream组件存在反序列化漏洞,导致远程代码执行。攻击者利用此漏洞可执行任意代码,创建/删除系统账号,修改任意文件,植入后门等

    S2-052漏洞影响的版本有:Struts 2.5 - Struts 2.5.12 。    image.png

    千里百科

    Struts2 是一个基于 MVC 设计模式的Web应用框架,它本质上相当于一个servlet,在 MVC 设计模式中,Struts2 作为控制器(Controller)来建立模型与视图的数据交互。Struts2 是世界上最流行的 Java Web 服务器框架之一。

    漏洞利用

    Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,导致远程代码执行。

    截止发稿时间,公网已经暴露多个漏洞利用 PoC,随机选取PoC如下:    image.png

    在本地搭建struts-2.5.12版本环境,在环境中访问http://x.x.x.x:8080/struts2-rest-showcase,并在请求数据中植入编辑好的PoC,可看到成功执行 “calc.exe” (计算器程序)命令,如下图所示    image.png

解决方案

    1、Apache官方最新版本已修复该漏洞,请受影响用户升级到Struts 2.5.13版本。

    2、暂时无法升级的用户,请在非必要情况下删除Struts REST插件,或者在配置文件中加入如下代码,限制服务端文件的扩展名。

image.png

    深信服下一代防火墙用户,请在今天内升级安全防护规则到 20170906 及其以后版本,可轻松防御针对此漏洞的攻击;深信服 “云盾” 用户,无需升级,可直接获得安全防护。