行业新闻

Tomcat的PUT的上传漏洞(CVE-2017-12615)

Tomcat的PUT的上传漏洞(CVE-2017-12615)

原创: free雅轩 合天智汇 

近期在项目中碰到的ApacheTomcat中间件愈来愈多,于是乎。想着做一个整理。将ApacheTomcat中间件的几大较为重要的高危漏洞做一个总结整理复现。用作来巩固更新自己的知识库。

在这里感谢公司Bearcat师傅和残忆师傅以及李师傅等指导和共享精神。

首先我们先来了解以下Tomcat的概念:

Tomcat是我们在工作中所使用的一款开源轻量级的Web应用程序服务器。通常情况下在中小型系统或者并发量较小的场合下使用,常用来与JSP和PHP脚本结合使来解析脚本语言部署搭建网站等系统。

在这里我们将Tomcat的几大高危漏洞整理至以下:

1、Tomcat后台弱口令上传war包

2、Tomcat的PUT的上传漏洞(CVE-2017-12615)

3、Tomcat反序列化漏洞(CVE-2016-8735)

4、Tomcat之JMX服务弱口令漏洞

5、Tomcat 样例目录session操控漏洞

6、Tomcat本地提权漏洞(CVE-2016-1240)

7、Tomcat win版默认空口令漏洞(CVE-2009-3548)

接着上一篇的弱口令上传war包getsehll后(

[/code]

8005为tomcat的远程停止服务的端口。

2、第71-73行:

[code]

Connectorport="8080" protocol="HTTP/1.1"

connectionTimeout="20000" redirectPort="8443" />

[/code]

8080为Tomcat服务的HTTP协议端口,8443为HTTPS端口

3、第93行:

[code]

Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />

[/code]

8009为Tomcat服务的AJP端口。

如果运行多个版本的tomcat服务则需要针对每个版本的这三个端口进行修改。修改8005以及8080/8443和8099为其他没被占用的端口。以及不同版本的Tomcat需要不同的JDK来进行运行。

搭建好之后我们需要先进行设置一下在HTTP请求中开启Put方法。在conf/web.xml文件中将readonly初始化参数由默认值设置为false。即可成功开启Put方法。


图片.png

根据上图注释信息我们可以得知默认情况下是禁止http请求中的上传(PUT)和删除(DELETE)方法的。在这里我们在配置文件给他加入这样一行。开启他的PUT方法。

[CODE]

init-param>

param-name>readonly/param-name>

param-value>false/param-value>

/init-param>

[/CODE]

图片.png

设置完成后,即可重启tomcat服务,来转包利用PUT方法上传木马。我们先来测试一下:


图片.png

上传成功。接下来就不言而喻了。

图片.png

当然,为了方便。一般情况下我们直接使用EXP快速利用。在这里贴上Bearcat师傅的CVE-2017-12615的EXP下载地址。https://github.com/iBearcat/CVE-2017-12615


图片.png

修复方案:

1、配置readonly和VirtualDirContext值为True或注释参数,禁止使用PUT方法并重启tomcat

注意:如果禁用PUT方法,对于依赖PUT方法的应用,可能导致业务失效。 

2、根据官方补丁升级最新版本



关闭