漏洞复现-CVE-2020-1938-Tomcat 文件读取/包含漏洞

时间:2021-09-22
本文章向大家介绍漏洞复现-CVE-2020-1938-Tomcat 文件读取/包含漏洞,主要包括漏洞复现-CVE-2020-1938-Tomcat 文件读取/包含漏洞使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
 
 
 
 

0x00 实验环境

攻击机:Win 10

靶场:docker拉的vulhub靶场

0x01 影响版本

受影响版本

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

不受影响版本

  • Apache Tomcat = 7.0.100
  • Apache Tomcat = 8.5.51
  • Apache Tomcat = 9.0.31

0x02 漏洞复现

描述 tomcat默认的conf/server.xml中配置了2个Connector,两个端口默认均监听在外网ip:

一个为8080的对外提供的HTTP协议端口

一个默认的8009 AJP协议端口

若web站点存在文件上传功能,可配合上传shell进行服务器权限的控制。

(1)探测存活端口为8009,也可能为其他端口:

nmap  -A -v ip

(2)执行命令(exp将不对外提供,此处进行免责声明,本博客所有复现类漏洞均用于学习与正义的工作,如产生安全事故概与本人无关

python2 ajp.py x.x.x.x -p 8009 -f WEB-INF/web.xml

0x03 漏洞原理

AJP连接器可以通过AJP协议和另一个web容器进行交互。它监听8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP连接器可以通过AJP协议和一个web容器进行交互。

0x04 修复建议

1.   如未使用Tomcat AJP协议:

如未使用 Tomcat AJP 协议,可以直接将 Tomcat 升级到 9.0.318.5.51 7.0.100 版本进行漏洞修复。

如无法立即进行版本更新、或者是更老版本的用户,建议直接关闭AJPConnector,或将其监听地址改为仅监听本机localhost。

具体操作:

(1)编辑 <CATALINA_BASE>/conf/server.xml,找到如下行(<CATALINA_BASE> 为 Tomcat 的工作目录):

<Connector port="8009"protocol="AJP/1.3"redirectPort="8443"/>

(2)将此行注释掉(也可删掉该行):

<!--<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"/>-->

(3)保存后需重新启动,规则方可生效。

参考文献:https://cloud.tencent.com/developer/article/1590029

原文地址:https://www.cnblogs.com/cute-puli/p/15319805.html