CVE-2020-1938 Tomcat任意文件读取漏洞复现

今天继续给大家介绍渗透测试相关知识,本文主要内容是CVE-2020-1938 Tomcat任意文件读取漏洞复现。

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

一、CVE-2020-1938漏洞简介与环境搭建

CVE-2020-1938漏洞是由长亭科技研究员于2020年发现的存在于Tomcat中的漏洞,由于Tomcat上的设计缺陷,攻击者通过Tomcat AJP Connectot可以读取tomcat中webapp目录(Tomcat默认网页主目录)下的任意文件。
Tomcat AJP协议是Apache JServ Protocol的简称,由于Tomcat处理静态资源文件的性能较差,因此Tomcat存在一个“补偿”方案,即静态文件的请求可以通过Apache服务器或IIS服务器代理,Tomcat与Apache服务器之间使用AJP协议进行通信,AJP采用二进制的方式进行数据传输,并且由于Web服务器与Tomcat之间TCP的类似长链接机制,因此可以提升静态资源的传输效率。在默认情况下,Tomcat如果开放8009端口,那么就大概率开启了AJP服务,因为8009端口就是AJP服务的默认端口。
该漏洞影响版本:
Tomcat 9.0——9.0.31
Tomcat 8.0——8.5.51
Tomcat 7.0——7.0.100
Tomcat 6.X
注:更为早版本的Tomcat未研究验证
为了复现CVE-2020-1938 Tomcat任意文件读取漏洞,我们使用Vulhub搭建靶场环境,进入/vulhub-master/tomcat/CVE-2020-1938/目录后,执行命令:

docker-compose up -d

即可下载并开启漏洞环境,该命令执行结果如下所示:
在这里插入图片描述
执行命令:

docker-compose config

即可查看该漏洞配置,如下所示:
在这里插入图片描述

二、CVE-2020-1938漏洞复现

接下来,我们就可以复现该漏洞了。复现该漏洞我们需要下载EXP,我们可以去Github或者其他网站搜索对应的EXP,在这里我提供一个他人写的EXP,URL为:https://github.com/sv3nbeast/CVE-2020-1938-Tomact-file_include-file_read
页面如下所示:
在这里插入图片描述
该EXP是采用Python2开发的,因此我们运行该脚本需要有Python2的环境,下载完成后,我将其上传到含有Python2环境的设备上,然后执行命令:

python Tomcat-ROOT路径下文件读取\(CVE-2020-1938\).py 192.168.136.13 -p 8009 -f WEB-INF/web.xml 

在上述命令中,脚本后面跟目标IP,-p参数指定了目标端口号,-f参数表示要读取的文件,执行结果如下所示:
在这里插入图片描述
从上图可以看出,我们成功读取了目标系统的文件,CVE-2020-1938 Tomcat任意文件读取漏洞复现成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/128513316