Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现

环境

ubantu ip:192.168.249.137

win10

漏洞描述

攻击者可以向用户服务器上传恶意JSP文件,通过上传的 JSP 文件 ,可在用户服务器上执行任意代码,从而导致数据泄露或获取服务器权限,存在高安全风险


环境配置

  1. 下载docker-compose

apt-get update

apt install docker-compose
Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第1张图片

安装完成后,在终端输入 :docker-compose 不报错即为成功

  1. 下载并安装vulhub:github下载:vulhub-docker

如果拉取速度太慢,可以直接下载master分支的压缩包:https://github.com/vulhub/vulhub/archive/master.zip

下载解压后

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第2张图片
  1. 进入到vulhub目录下 ,可以看到各种环境。

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第3张图片
  1. 查看该漏洞路径

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第4张图片
  1. 进入对应的漏洞路径

  1. 启动漏洞,命令为docker-compose up -d 或者 docker-compose build

如果端口被占用可以修改端口号,(任意没用过的都可以,例如81,90)

这是修改端口的文件

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第5张图片
  1. 这时环境就已经启动好了

漏洞复现

  1. 打开burpsuit,开启抓包

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第6张图片

  1. 这时环境就已经启动好了 打开浏览器url输入 ip:端口号

我这里没改所以写 192.168.249.137:8080

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第7张图片

burpsuit捕捉到内容如下

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第8张图片

右键发送到Repeater模块

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第9张图片
Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第10张图片
  1. 由于tomcat开启了put上传所以可以修改请求方法

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第11张图片

尝试上传1.txt文件,内容为hello tom。响应代码201上传成功。

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第12张图片

在浏览器url后 加上上传的文件名 , 可以看到上传的内容

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第13张图片
  1. 到这里我们已经成功利用PUT漏洞上传文件了

上传jsp文件

  1. 上传jsp文件 ,发现会返回404错误

这是因为:

org.apache.jasper.servlet.JspServlet:默认处理jsp,jspx文件请求,不存在PUT上传逻辑,无法处理PUT请求
org.apache.catalina.servlets.DefaultServlet:默认处理静态文件(除jsp,jspx之外的文件),存在PUT上传处理逻辑,可以处理PUT请求。
所以可以利用windows特性修改文件后缀,从而成功创建jsp文件,这也就是所谓的CVE-2017-12615漏洞。
Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第14张图片
  1. 我们可以在文件名后加 / ,1.jsp/就可以上传成功

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第15张图片
  1. 文件后加::DATA绕过

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第16张图片
  1. 文件后缀加%20绕过,1.jsp%20

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第17张图片

上传jsp一句话木马,利用webshell管理工具连接

  1. 我们利用冰蝎工具进行实验;上传一个shell.jsp文件

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第18张图片
  1. 关闭拦截后,浏览器url加上文件名shell.jsp

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第19张图片
  1. 打开冰蝎连接到网站

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第20张图片
  1. 连接成功,可以对网站进行基本操作,查看网站目录,

Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第21张图片
Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第22张图片
Tomcat利用put任意写文件漏洞(CVE-2017-12615)实验复现_第23张图片

漏洞修复

  1. 配置readonly和VirtualDirContext值为True或注释参数,禁止使用PUT方法并重启tomcat
    注意:如果禁用PUT方法,对于依赖PUT方法的应用,可能导致业务失效。

  1. 根据官方补丁升级最新版本

你可能感兴趣的:(漏洞复现,网络安全,web安全,安全架构,ubuntu)