Tomcat 远程代码执行漏洞分析(CVE-2017-12615)及补丁 Bypass

本文讲的是Tomcat 远程代码执行漏洞分析(CVE-2017-12615)及补丁 Bypass

(注:图片来源于网络)

Apache Tomcat 修复了2个严重级别的漏洞, 分别为: 信息泄露漏洞(CVE-2017-12616)、远程代码执行漏洞(CVE-2017-12615),在某些场景下,攻击者将分别能通过这两个漏洞,获取用户服务器上 JSP 文件的源代码,或是通过精心构造的攻击请求,向用户服务器上传恶意 JSP 文件,通过上传的 JSP 文件 ,可在用户服务器上执行任意代码。

漏洞概述   

信息泄露漏洞(CVE-2017-12616)

当 Tomcat 中使用了 VirtualDirContext 时,攻击者将能通过发送精心构造的恶意请求,绕过设置的相关安全限制,或是获取到由 VirtualDirContext 提供支持资源的 JSP 源代码。

远程代码执行漏洞(CVE-2017-12615)

当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求向服务器上传包含任意代码的 JSP 文件。之后,JSP 文件中的代码将能被服务器执行。

漏洞危害

泄露用户代码数据,或用户服务器被攻击者控制

影响版本

1、信息泄露漏洞(CVE-2017-12616)影响:Apache Tomcat 7.0.0 – 7.0.80

2、 远程代码执行漏洞(CVE-2017-12615)影响: Apache Tomcat 7.0.0 – 7.0.79

CVE-2017-12615复现

根据描述,在 Windows 服务器下,将 readonly 参数设置为 false 时,即可通过 PUT 方式创建一个 JSP 文件,并可以执行任意代码。   

通过阅读 conf/web.xml 文件,可以发现:  

默认 readonly 为 true,当 readonly 设置为 false 时,可以通过 PUT / DELETE 进行文件操控。  

配置 readonly 为 false:

启动 Tomcat,利用 PUT 请求创建文件:

提示 404。通过描述中的 Windows 受影响,可以结合 Windows 的特性。其一是 NTFS 文件流,其二是文件名的相关限制(如 Windows 中文件名不能以空格结尾)来绕过限制: 

访问发现可以正常输出: 

分析

Tomcat 的 Servlet 是在 conf/web.xml 配置的,通过配置文件可知,当后缀名为 .jsp 和 .jspx 的时候,是通过JspServlet处理请求的:  

可以得知,“1.jsp ”(末尾有一个和空格)并不能匹配到 JspServlet,而是会交由DefaultServlet去处理。当处理 PUT 请求时:

会调用resources.bind:

dirContext 为FileDirContext:

调用 rebind创建文件:

又由于 Windows 不允许“ ”作为文件名结尾,所以会创建一个 .jsp 文件,导致代码执行。

Bypass 分析

然而,经过黑盒测试,当 PUT 地址为/1.jsp/时,仍然会创建 JSP,会影响 Linux 和 Windows 服务器,并且 Bypass 了之前的补丁,分析如下。 

在进入 bind 函数时,会声明一个 File 变量:

进入 File 后,会对 name 进行 normalize

最后得到的 path 就是没有最后 / 的 path 了:

原文发布时间为:2017年9月20日

原文链接

时间: 2024-08-30 07:37:06

Tomcat 远程代码执行漏洞分析(CVE-2017-12615)及补丁 Bypass的相关文章

CVE-2017-12615/CVE-2017-12616:Tomcat信息泄漏和远程代码执行漏洞分析报告

一. 漏洞概述 2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,该漏洞受影响版本为7.0-7.80之间,官方评级为高危,在一定条件下,攻击者可以利用这两个漏洞,获取用户服务器上 JSP 文件的源代码,或是通过精心构造的攻击请求,向用户服务器上传恶意JSP文件,通过上传的 JSP 文件 ,可在用户服务器上执行任意代码,从而导致数据泄露或获取服务器权限,存在高安全风险. 二. 漏洞基本信息 漏洞

Apache Struts2远程代码执行漏洞S2-048 CVE-2017-9791 分析和防护方案

今天,Apache Struts官方发布公告,漏洞编号为S2-048 CVE-2017-9791,公告称Struts2和Struts1中的一个Showcase插件可能导致远程代码执行,并评价为高危漏洞. 绿盟科技发布分析和防护方案,其中开放了在线检测工具 https://cloud.nsfocus.com/#/krosa/views/initcdr/productandservice?page_id=12 通告全文如下 Apache Struts2远程代码执行漏洞S2-048 CVE-2017-

Struts2远程代码执行漏洞CVE-2017-9805 s2-052 绿盟科技发布分析和防护方案

5日晚, Struts2远程代码执行漏洞CVE-2017-9805(s2-052),绿盟科技发布扫描工具 ,今天绿盟科技发布了<Struts2 s2-052 REST插件远程代码执行技术分析与防护方案>,报告全文如下 Struts2 s2-052 REST插件远程代码执行技术分析与防护方案 2017年9月5日,Apache Struts发布最新的安全公告,Apache Struts 2.5.x以及之前的部分2.x版本的REST插件存在远程代码执行的高危漏洞,漏洞编号为CVE-2017-9805

绿盟科技网络安全威胁周报2017.17 请关注Squirrelmail 远程代码执行漏洞CVE-2017-7692

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-17,绿盟科技漏洞库本周新增84条,其中高危40条.本次周报建议大家关注 Squirrelmail 远程代码执行漏洞 .SquirrelMail是以PHP编写的基于标准的webmail包.Squirrelmail 在1.4.22以前的版本中,由于在传递一个字符串给popen调用之前,没有对其进行过滤和无害化处理.因此攻击者有可能利用此漏洞在远程服务器上越权执行任意代码.目前Squirrelmail官方已经发布相关修复补丁,NSFOCUS建

绿盟科技网络安全威胁周报2017.10 请关注Struts2远程代码执行漏洞CVE-2017-5638

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-10,绿盟科技漏洞库本周新增32条,其中高危1条.本次周报建议大家关注 Struts2 远程代码执行漏洞 CVE-2017-5638 .攻击者通过恶意的Content-Type值,可导致远程代码执行.目前,Apache官方已针对该漏洞已经发布安全公告和补丁.请受影响用户及时检查升级,修复漏洞. 焦点漏洞 Struts2 远程代码执行漏洞 NSFOCUS ID 36031 CVE ID CVE-2017-5638 受影响版本 Struts

绿盟科技网络安全威胁周报2017.12 关注fastjson远程代码执行漏洞 漏洞细节以及利用工具已经曝光

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-12,绿盟科技漏洞库本周新增44条,其中高危12条.本次周报建议大家关注 fastjson远程代码执行 .目前漏洞细节已经披露,可导致大规模对此漏洞的利用.强烈建议用户检查自己使用的fastjson是否为受影响的版本,如果是,请尽快升级. 焦点漏洞 fastjson远程代码执行 NSFOCUS ID 无 CVE ID 无 受影响版本 1.2.24及之前版本 漏洞点评 fastjson在反序列化时存在安全漏洞,攻击者可以通过提交一个精心构造

绿盟科技网络安全威胁周报2017.27 关注Apache Struts远程代码执行漏洞CVE-2017-9791

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-26,绿盟科技漏洞库本周新增46条,其中高危9条.本次周报建议大家关注 Apache Struts远程代码执行漏洞 .目前厂商已经为此发布了一个 安全公告 (S2-048)以及相应补丁,请用户及时下载更新. 焦点漏洞 Apache Struts远程代码执行漏洞 NSFOCUS ID  37074 CVE ID  CVE-2017-9791 受影响版本 Apache Struts Version:2.3.x 漏洞点评 Apache Stru

绿盟科技网络安全威胁周报2017.24 关注Windows LNK文件远程代码执行漏洞CVE-2017-8464

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-24,绿盟科技漏洞库本周新增109条,其中高危93条.本次周报建议大家关注 Windows LNK文件远程代码执行漏洞 .微软官方已经在6月份发布的安全补丁中修复了此漏洞,受影响的用户应立即通过Windows自动更新服务来下载更新该安全补丁来防护.对于无法及时更新补丁的主机,建议禁用U盘.网络共享的功能. 焦点漏洞 Windows LNK文件远程代码执行漏洞 NSFOCUS ID  36895 CVE ID  CVE-2017-8464

绿盟科技网络安全威胁周报2017.13 关注Apple iOS WI-FI远程代码执行漏洞CVE-2017-6975

绿盟科技发布了本周安全通告,周报编号NSFOCUS-17-13,绿盟科技漏洞库本周新增34条,其中高危4条.本次周报建议大家关注 Apple iOS WI-FI远程代码执行漏洞 .目前厂商已经进行了修复,强烈建议用户检查自己的系统是否为受影响版本,如果是,请尽快升级. 焦点漏洞 Apple iOS WI-FI远程代码执行漏洞 NSFOCUS ID 36325 CVE ID CVE-2017-6975 受影响版本 iOS Version <= 10.3 漏洞点评 博通(Broadcom)WI-FI