java怎么知道上传文件是否成功_文件包含漏洞之——tomcat CVE-2020-1938漏洞复现

4dba1889ca5353be421be9f0bbf3dd50.png

这个漏洞是今年2月份出现的,他的影响范围也是非常广的。

2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938),这个漏洞是由于Tomcat AJP协议存在缺陷而导致,而攻击者利用该漏洞通过构造特定参数,读取服务器webapp下的任意文件,若目标服务器存在文件上传功能,攻击者可以进一步实现远程代码执行。

漏洞复现步骤

1. docker启动环境

2. Python2 poc.py 172.18.0.2 -p 8009 -w manager -f /WEB-INF/web.xml

我们首先去启动vnlhub

然后启动docker

启动docker之后我们到vnlhub下面去

然后cd到tomcat

Ls查一下,vulhub已经给我们结成好了CVE-2020-1938这一个漏洞的环境,我们cd进去拖取一下这个环境就可以了。

b335f07c22729a973c913e27f2dd3aff.png

这个时候我们在去本地浏览器上去访问一下,访问我们的虚拟机地址8080端口,然后我们进一步的去查看一下虚拟机的ip地址。

87988c5cf8112d69d545f6c37707c2b3.png

我们在去看一下端口是不是8080 cat README

5d065dce23a8019b8034321e80becdc7.png

在这里我们没有访问到,那么我们换一个浏览器

1a1f4ed39781fb9417c9b54b7b32aafd.png

那么这个就是我们CVE-2020-1938所影响的一个环境,而这个漏洞我们也把它叫做幽灵猫漏洞。

接下来让我们一起去复现它。

我们需要去利用到一个脚本,在这个脚本里是编写了这个漏洞攻击的代码。然后我们跟上目标的地址,加上ajp协议端口,加上-w manager -f 能够通过这样一个漏洞我们就能够去读取它下面的web xml文件

a171ea59ab39101d4ee6811271937f11.png

我们利用Python2的环境

24561d04bf08c5b55751baa1154f5995.png

跟上容器的ip地址,那这个容器的ip地址我们这里把它改为容器的ip地址

如果我们不知道去哪里去查看这个容器的ip地址,那么我们直接跟上虚拟机的地址,跟上-p 8009端口一样也是可以的

43c5f77afa9d6e26d33b33f367b70778.png

那么我们就可以通过这样的一个漏洞利用的脚本,跟上这样的读取参数来去读取对方服务器下面的web.xml文件,我们可以看到我们能够成功的读取这个文件的结果出来,这个也是通过文件包含的一个漏洞来去达到这样的一个目的。

9e89456efcf3edaa0ca37c5df8516b1d.png

如果我们想进一步的去getshell该怎么办呢?

如果我们需要getshell的话是需要对方有这样的一个上传功能,在这里我们首先生成一个木马通过kali。

e83418f759637300074fc4da8322674d.png

我们在这里生成一个java的反向连接的木马。

7670f121608eecf3ab874978d511b772.png

这个时候我们需要将这个木马上传到服务器,由于我们这里没有这个上传功能,所以我们这里就直接把这个木马复制过去。

ffd48b45a7a28dadd3113ef706af70dc.png

在这里有一个txt文件,按道理来说是不解析的,但我们可以通过文件包含漏洞来去解析txt中的木马,然后我们主机远程上线。

这个时候我们在去打开msf来去开启 监听,那么对方包含这个文件的时候,我们主机在kail这里就可以成功上线。

ee827a2fddb47ee67a9836ec3fdf3bec.png

我们设定一个java代码,并且是一个反向连接的代码。

0dc3ecc14111331916f4fd744e97b708.png

那么我们在设定反弹过来的ip,也就是跟我们木马中的一致。

03a0c606cb7547fe884aa63ed3b1255a.png

这个时候我们run一下开始监听,这个时候就已经开始监听了。

然后我们在这里通过脚本去成功执行,利用我们的幽灵猫漏洞

bed6c7c78bd2415e502ad98a1591556d.png

-f直接指定这样一个本地文件包含,回车。

59190fa33c9c4a465298b89307f45f15.png

回车过后我们可以看到我们的kail里面,它就会获取这样的一个反向连接,反向连接从我们的容器连接到我们的kail里面来,此刻我们去执行下命令id,可以发现我们现在是root身份,那么我们在这里就可以获得一个权限。

82d35997aa998061ded126e416447e91.png

获得目标的一个执行命令权限,成功的拿到了shell。

那么这就是这个文件包含配合上传的一个getshell的利用方式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值