CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现

一、概述

       1.1漏洞编号:CVE-2020-1938

  1.2危险等级:高

       1.3描述

  2020年2月20日,国家信息安全漏洞共享平台(CNVD)发布关于Apache Tomcat的安全公告,Apache Tomcat文件包含漏洞是由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件、源代码等。

二、影响的版本

       Apache Tomcat 6

  Apache Tomcat 7 < 7.0.100

  Apache Tomcat 8 < 8.5.51

  Apache Tomcat 9 < 9.0.31

三、漏洞分析

       通过对源码的分析,发现Tomcat在处理ajp协议时存在漏洞,可通过调用request.setAttribute为Tomcat设置任意request属性。复现发现Tomcat ajp协议存在web目录下任意文件读取漏洞以及JSP文件包含漏洞。

  当ajp URI设置为非jsp路径时,Tomcat会调用DefaultServlet处理,此时会导致web目录任意文件读取漏洞。

  当ajp URI设置为jsp路径时,Tomcat会调用JspServlet处理,此时会导致JSP文件包含漏洞

四、复现步骤

环境介绍

       目标机win7(IP):192.168.91.132

       攻击机kali(IP):192.168.91.128

扫描二维码关注公众号,回复: 10109772 查看本文章

       Tomcat版本:8.5.5

  注:顺带附上Tomcat各个版本下载链接:http://archive.apache.org/dist/tomcat/

4.1查看tomcat是否部署

 

4.2主机发现

 

4.3扫描端口(8009开放)

 

4.4下载读取文件的poc

  Poc链接:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

 

4.5输入参数并执行

  可以看到已经成功读取了我们的文件信息

 

五、防御措施

       1.禁用AJP协议,在tomcat安装路径中找到/conf/server.xml文件,删除或注释下面这行代码:<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />

       2.升级到tomcat最新版本,

       3.配置secret来设置AJP协议的认证凭证,如:<Connector port="8009"protocol="AJP/1.3" redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS" secret="YOUR_TOMCAT_AJP_SECRET"/>

六、危害

       攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若服务器端同时存在文件上传功能,攻击者可进一步实现远程代码的执行

猜你喜欢

转载自www.cnblogs.com/bin1121/p/12556749.html