18

CVE-2020-1938:Apache Tomcat服务器任意文件读取/包含漏洞通告

 4 years ago
source link: https://www.anquanke.com/post/id/199351
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

QNviqmf.png!web

近日检测到CNVD发布了CNVD-2020-10487漏洞通告,360灵腾安全实验室判断漏洞等级为严重,利用难度中,威胁程度高,影响面大。建议使用用户及时安装最新补丁,以免遭受黑客攻击。

0x00 漏洞概述

Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全局管理和Tomcat阀等。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。

攻击者通过Ajp协议端口利用该漏洞进行文件读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件、源代码等。

0x01 漏洞详情

查看 Github 上 tomcat commit 历史记录可以看到有许多对AJP协议的代码提交

Uv6Vrab.png!web

在其中一条 commit 中,发现了AJP白名单的添加

buQFriR.png!web

对代码块进行分析,发现 java/org/apache/coyote/ajp/AbstractAjpProcessor.java 中的 prepareRequest() 函数的功能是对 AJP 协议进行解析

eqYrAj7.png!web

通过对该函数的调试,可以发现在处理 Constants.SC_A_REQ_ATTRIBUTE 这部分内容时,代码中未进行内容校验,盲目的将请求的内容进行复制

nuInqai.png!web

因此,我们可以修改AJP请求的属性,进行能够控制任意 request.setAttribute 的key和value,通过控制request对象中这三个属性的值实现文件读取

javax.servlet.include.request_uri
javax.servlet.include.path_info
javax.servlet.include.servlet_path

利用效果:

yeAF3a7.png!web

0x02 影响版本

  • Tomcat 6.*
  • Tomcat 7.* < 7.0.100
  • Tomcat 8.* < 8.5.51
  • Tomcat 9.* < 9.0.31

0x03 漏洞检测

相关用户可通过版本检测的方法判断当前应用是否存在漏洞风险:

在web管理页面左上方可查看当前所使用的Tomcat版本

BVVfyqf.png!web

若当前版本在受影响范围内,则可能存在安全风险。

0x04 处置建议

1.Apache官方已发布9.0.31、8.5.51及7.0.100版本针对此漏洞进行修复,Apache Tomcat 6 已经停止维护,请升级到最新受支持的 Tomcat 版本以免遭受漏洞影响:

https://tomcat.apache.org/download-70.cgi
https://tomcat.apache.org/download-80.cgi
https://tomcat.apache.org/download-90.cgi

2.使用AJP协议的临时处置方法:为AJP Connector配置secret来设置 AJP 协议的认证凭证,且注意口令强度

3.未使用AJP协议的临时处置方法:禁用AJP协议端口,在conf/server.xml配置文件中注释,并重启Tomcat服务

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

0x05 关于我们

灵腾安全实验室(REDTEAM)正式成立于2020年,隶属于360政企-实网威胁感知部;主攻研究方向包括红队技术、物理攻防、安全狩猎等前瞻技术,为 360AISA全流量威胁分析系统360天相资产威胁与漏洞管理系统360虎安服务器安全管理系统360蜃景攻击欺骗防御系统 核心产品提供安全赋能。

0X06 Reference

https://www.cnvd.org.cn/flaw/show/CNVD-2020-10487?spm=a2c4g.11174464.0.0.48a21051t59uVP


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK