文档详情

Struts2远程代码执行漏洞.PDF

发布:2017-12-22约2.37千字共6页下载文档
文本预览下载声明
Struts2 远程代码执行漏洞 S2-053 (CVE-2017-12611)简报 2017-09-08 404 实验室 Struts2 远程代码执行漏洞 S2-053 (CVE-2017-12611)简报 目 录 一、漏洞概述2 1 简介2 2 影响版本2 二、漏洞复现2 1 复现环境2 2 环境搭建2 3 复现过程及结果3 三、防护方案3 四、相关链接4 第 1 页 Struts2 远程代码执行漏洞 S2-053 (CVE-2017-12611)简报 一、漏洞概述 1 简介 Apache Struts 是一个免费的开源 MVC 框架,用于创建优雅、现代的 Java Web 应 用程序。Apache FreeMarker 是一个模板引擎:基于模板和更改数据生成文本输出(HTML 网页,电子邮件,配置文件,源代码等)的Java 库。 2017 年 9 月 7 日,Apache Struts 发布最新安全公告[2] 。在 Freemarker 标记中使 用表达式而不是字符串时,可能会二次解析表达式并造成远程执行代码攻击。 2017 年 9 月 7 日,Seebug 漏洞平台收录了该漏洞[1],知道创宇 404 实验室漏洞情 报团队开始漏洞应急,复现并分析了该漏洞。 2 影响版本 Apache Struts Version:Struts 2.0.1 – Struts 2.3.33 Apache Struts Version:Struts 2.5 – Struts 2.5.10 二、漏洞复现 1 复现环境  Apache tomcat 8  Apache Struts 2.5. 10 2 环境搭建 1. 从 docker 拉取存在漏洞的镜像[3]: docker pull medicean/vulapps:s_struts2_s2-053 2. 启动docker: docker run -d -p 80:8080 medicean/vulapps:s_struts2_s2-053。 第 2 页 Struts2 远程代码执行漏洞 S2-053 (CVE-2017-12611)简报 3. 访问页面: http://localhost:80 3 复现过程及结果 1. 访问页面:http://localhost:80 2. 向页面 name 表单提交 poc。 (poc 没有完全进行 URL 编码,直接使用 curl 或者 访问带参数的 url 进行复现是 不能成功的。) 3. 进入容器查看 /tmp 目录, 发现 test404 文件已被创建。命令执行成功。 三、防护方案 1、升级 Struts 版本到最新版本 2.5.13 或 2.3.34 。 2 、官方建议:代码中出现如下构造是不可取的。 @s.hidden name=redirectUri value=redirectUri / @s.hidden name=redirectUri value=${redirectUri} / 或者使用只读属性来初始化 value 属性(仅限 getter 属性)。 3 、使用第三方防火墙进行防护(如创宇盾[ /cyd/ ]) 4 、技术业务咨询 知道创宇技术业务咨询热线 : 400-060-9587(政府,国有企业)、028互联网企业)
显示全部
相似文档