TomcatPUT的文件上传漏洞(CVE-2017-12615)

目录

漏洞描述:

受影响的版本:

漏洞位置:

利用条件:

环境搭建:

安装docker

安装docker加速器

安装PIP

安装docker-compose

安装vulhub

漏洞复现:

漏洞修复:


漏洞描述:

当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 文件,JSP文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。

受影响的版本:

Apache Tomcat 7.0.0 to 7.0.79

 

漏洞位置:

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第1张图片

利用条件:

Apache Tomcat 默认开启 PUT 方法,org.apache.catalina.servlets.DefaultServlet的 readonly 默认为 true,需要手动配置readonly为false才可以进行漏洞利用,而且默认没有在 Tomcat/conf/web.xml 里写,需要手工添加并且改为 false,才可以进行测试。

环境搭建:

这里使用docker+vulhub搭建漏洞环境,在Ubuntu上搭建vulhub的步骤如下:


安装docker

        apt-get update
        apt install docker.io

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第2张图片

 

查看当前docker的版本

        docker -v

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第3张图片
因为第一次安装docker,所以仓库是空的

需要下载镜像

查询云上的公有的镜像仓库

这里做实例,我们选择  xf5v****镜像

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第4张图片

使用docker imags查看当前仓库里的docker

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第5张图片 

运行镜像,生成容器,为容器设置99端口,再加上image Id(前三位即可)

查看镜像是否运行

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第6张图片

在浏览器登录,输入默认地址 ,给容器设置端口(前提,该端口之前没启动)

 

 TomcatPUT的文件上传漏洞(CVE-2017-12615)_第7张图片

安装docker加速器

   Linux环境执行:curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io      

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第8张图片

安装PIP

如果你的环境中没有安装pip,还需要先安装pip。推荐使用如下命令进行安装,这种方式将会少安装很多不需要的依赖:

curl -s https://bootstrap.pypa.io/get-pip.py | python3

安装docker-compose

 TomcatPUT的文件上传漏洞(CVE-2017-12615)_第9张图片

 

安装vulhub

安装完成docker和docker-compose后,拉取Vulhub到本地任意目录即可:

git clone GitHub - vulhub/vulhub: Pre-Built Vulnerable Environments Based on Docker-Compose

也可以下载master分支的压缩包:Vulhub.zip

https://codeload.github.com/vulhub/vulhub/zip/refs/heads/master

systemctl start docker

因为下载速度仍然比较慢,作者推荐使用 xshell 连接进行传输文件,节约时间成本

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第10张图片

解压完这个目录后

找到CVE-2017-12615并进入

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第11张图片 TomcatPUT的文件上传漏洞(CVE-2017-12615)_第12张图片

 在漏洞路径下启动环境

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第13张图片

进入burpsuite,打开内置浏览器输入127.0.0.1:99,开启拦截,

 将拦截的数据包发送到重构器repeater中 

TomcatPUT的文件上传漏洞(CVE-2017-12615)_第14张图片

将get方法改为put方法 

三种绕过方法可以成功上传后缀为***.jsp的文件

evil.jsp%20

evil.jsp::$DATA

evil.jsp/

漏洞复现:

安装Tomcat可成功访问

漏洞修复:

受影响的Apache Tomcat 7.0.0 to 7.0.79版本,建议及时更新到Apache Tomcat 7.0.81,就自动修补了该漏洞,并且用户避免启用readonly功能,将false改成true

你可能感兴趣的:(中间件,ubuntu,linux)