近日,奇安信CERT监测到CNVD发布了漏洞公告,对应CNVD漏洞编号:CNVD-2020-10487、CVE漏洞编号:CVE-2020-1938。CNVD漏洞公告称Apache Tomcat服务器存在文件包含漏洞,攻击者可利用该漏洞,在未授权的情况下远程读取或包含Tomcat上webapp目录下的任意文件,如:相关配置文件或源代码等。若服务器端同时存在文件上传功能,攻击者可进一步结合文件包含实现远程代码的执行。

目前此漏洞的PoC和EXP已经在互联网公开和传播,有被恶意利用的可能。鉴于漏洞危害较大,建议客户尽快升级到最新版本或采取临时缓解措施。

本次更新内容如下:

1、针对此漏洞的PoC和EXP已经在互联网公开和传播

2、此漏洞被分配了CVE编号

3、本次更新新增奇安信开源卫士针对该漏洞的产品防护方案

4、更新了技术分析

奇安信 CERT

漏洞描述

Tomcat是Apache软件基金会Jakarta 项目中的一个核心项目,作为目前比较流行的Web应用服务器,深受Java爱好者的喜爱,并得到了部分软件开发商的认可。Tomcat服务器是一个免费的开放源代码的Web应用服务器,被普遍使用在轻量级Web应用服务的构架中。

近日,奇安信CERT监测到CNVD发布了漏洞公告,对应漏洞编号:CNVD-2020-10487称Apache Tomcat服务器存在文件包含漏洞,Apache Tomcat AJP协议(默认8009端口)由于存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp目录下的任意文件。若服务器端同时存在文件上传功能,攻击者可进一步结合文件包含实现远程代码的执行。

目前此漏洞的PoC和EXP已经在互联网公开和传播,有被恶意利用的可能。鉴于漏洞危害较大,建议客户尽快升级到最新版本或采取临时缓解措施。

奇安信CERT已第一时间复现此漏洞,复现效果如下:

风险等级

奇安信 CERT风险评级为:高危

风险等级:蓝色(一般事件)

漏洞分析

Apache Tomcat使用org.apache.coyote.ajp.AjpProcessor处理AJP协议请求,其中prepareRequest方法将我们封装好的request属性取出来并设置到Tomcat当前上下文中。

如下图:

因此基于该特性,我们可以构造一个恶意的request,并控制request对象的三个属性:

  • javax.servlet.include.request_uri

  • javax.servlet.include.path_info

  • javax.servlet.include.servlet_path

继续走Servlet流程如下图所示:

当url请求未在映射的url列表里面则会通过Tomcat默认的DefaultServlet会根据上面的三个属性来读取文件,如下图:

通过serveResource方法获取资源文件路径并且获取资源文件:

并最终返回到客户端:

影响范围

Tomcat 6.*

Tomcat 7.* < 7.0.100

Tomcat 8.* < 8.5.51

Tomcat 9.* < 9.0.31

处置建议

目前,Apache官方已发布9.0.31、8.5.51及7.0.100版本对此漏洞进行修复,建议用户尽快升级新版本:

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

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

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

如果暂时无法升级最新版本,可采取临时缓解措施:

1.如未使用Tomcat AJP协议:

如未使用 Tomcat AJP 协议,可以直接将 Tomcat 升级到 9.0.31、8.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)保存后需重新启动,规则方可生效。

2. 如果使用了Tomcat AJP协议:

建议将Tomcat立即升级到9.0.31、8.5.51或7.0.100版本进行修复,同时为AJP Connector配置secret来设置AJP协议的认证凭证。例如(注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

<Connector port="8009"protocol="AJP/1.3" redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS" secret="YOUR_TOMCAT_AJP_SECRET"/>

如无法立即进行版本更新、或者是更老版本的用户,建议为AJPConnector配置requiredSecret来设置AJP协议认证凭证。例如(注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

<Connector port="8009"protocol="AJP/1.3" redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS"requiredSecret="YOUR_TOMCAT_AJP_SECRET" />

产品线解决方案

奇安信网神网络数据传感器系统产品检测方案

奇安信网神网络数据传感器(NDS3000/5000/9000系列)产品,已具备该漏洞的检测能力。规则ID为:51270,建议用户尽快升级检测规则库至2002202255以上版本并启用该检测规则。

奇安信网神天堤防火墙产品防护方案

奇安信新一代智慧防火墙(NSG3000/5000/7000/9000系列)和下一代极速防火墙(NSG3500/5500/7500/9500系列)产品系列,已通过更新IPS特征库完成了对该漏洞的防护。建议用户尽快将IPS特征库升级至” 2002202255” 及以上版本并启用规则ID: 51270进行检测。

360网神虚拟化安全管理平台已更新入侵防御规则库

360 网神虚拟化安全管理平台轻代理版本可通过更新入侵防御规则库2020.02.21版本,支持对Apache Tomcat服务器存在文件包含漏洞的防护,请用户联系技术支持人员获取规则升级包对虚拟化产品轻代理版本进行升级。

360 网神虚拟化安全管理平台无代理版本可通过更新入侵防御规则库10253版本,支持对Apache Tomcat服务器存在文件包含漏洞的防护,请用户联系技术支持人员获取规则升级包对虚拟化产品无代理版本进行升级。

奇安信开源卫士已更新

奇安信开源卫士通过更新到20200221.209版本,支持对Apache Tomcat AJP协议漏洞的检测。

参考资料

[1] https://www.cnvd.org.cn/flaw/show/CNVD-2020-10487

[2] https://mp.weixin.qq.com/s/hvRD-0MqXHW8yJupbQt1ng

时间线

2020年2月20日,奇安信 CERT发布安全风险通告

2020年2月21日,奇安信 CERT发布安全风险通告第三次更新

【通告更新】Apache Tomcat服务器文件包含漏洞安全风险通告第三次更新相关推荐

  1. Apache Tomcat 曝文件包含漏洞:攻击者可利用该漏洞读取webapp目录下的任意文件...

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | https://ww ...

  2. Apache Tomcat AJP 文件包含漏洞(CVE-2020-1938)

    漏洞描述 产生原因 环境搭建 漏洞复现 漏洞描述 Java 是目前 Web 开发中最主流的编程语言,而 Tomcat 是当前最流行的 Java 中间件服务器之一,从初版发布到现在已经有二十多年历史,在 ...

  3. 【安全风险通告】Apache ShardingSphere远程代码执行漏洞安全风险通告

    近日,奇安信云影实验室安全研究员maoge发现Apache ShardingSphere存在远程代码执行漏洞,目前官方已为该漏洞分配CVE编号:CVE-2020-1947.截至今日,该漏洞已修复.鉴于 ...

  4. Java安全-Tomcat AJP 文件包含漏洞(CVE-2020-1938)幽灵猫漏洞复现

    Tomcat AJP 文件包含漏洞(CVE-2020-1938) CVE-2020-1938 又名GhostCat ApacheTomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含 ...

  5. Tomcat AJP 文件包含漏洞(CVE-2020-1938)

    目录 1.漏洞简介 2.AJP13 协议介绍 Tomcat 主要有两大功能: 3.Tomcat 远程文件包含漏洞分析 4.漏洞复现 5.漏洞分析 6.RCE 实现的原理 1.漏洞简介 2020 年 2 ...

  6. CVE-2020-1938 Aapache Tomcat AJP文件包含漏洞复现

    目录 一.环境搭建 1.下载vulhub 2.启动环境 二.漏洞复现 1.使用nmap扫描目标 2.运行POC验证漏洞 3.POC代码 三.修复方法 一.环境搭建 1.下载vulhub kali系统输 ...

  7. Apache Log4j任意代码执行漏洞安全风险通告第三次更新

    奇安信CERT 致力于第一时间为企业级用户提供安全风险通告和有效解决方案. 风险通告 近日,奇安信CERT监测到Apache Log4j存在任意代码执行漏洞.经过分析,该组件存在Java JNDI注入 ...

  8. fastjson反序列化漏洞_【安全风险通告】fastjson反序列化远程代码执行漏洞安全风险通告...

    近日,奇安信CERT监测到fastjson官方发布新版本,修补了一个反序列化远程代码执行漏洞.远程攻击者可利用该漏洞绕过autoType限制,进而可在目标服务器上执行任意命令.鉴于该漏洞影响较大,建议 ...

  9. 【文件包含漏洞03】文件包含漏洞的空字符绕过及六种利用方式

    目录 1 内容简介 本节概述 实验环境 2 空字符绕过 2.1 实验基础知识 2.2 实验环境及准备 2.3 实验步骤 2.3.1 正常访问 2.3.2 空字符绕过 2.3.3 额外的方式 3 利用方 ...

最新文章

  1. 10款著名的代码(文本)编辑器
  2. 9本java程序员必读的书(附下载地址)
  3. 蛮力法求最大字段和时间复杂度_硬笔字应该选择的工具,你了解吗?
  4. linux 删除mysql_MySQL— Linux下解压包方式安装
  5. C++ 程序员要像医生一样调试代码?
  6. java char i=2+#039;2#039;;_图说String(三)String中#039;+#039;和StringBuilder的区别
  7. UVA583 UVALive5406 Prime Factors【素数因子+筛选法】
  8. Web服务器用户权限设置,Windows系统下WEB服务器权限的设置详解(四)
  9. .NET BackgroundWorker
  10. not found for libcrypto
  11. eclipse中添加subclipse插件
  12. 任意图像转素描:Python分分钟实现
  13. 一个将Google Maps API与ArcGIS JavaScript API for GMaps结合的例子
  14. 详解!适合女生做的互联网项目
  15. C | 使用C语言读取.mat文件
  16. js下载当前页面表格为excel
  17. Hbuildx创建vue3项目
  18. oracle变成大写快捷键,Oracle函数(把每个单词首个字母变为大写)
  19. 转载:KOF97坂琦良心得
  20. ThinkPad P52鲁大师测试

热门文章

  1. 201671010444 夏向明 词频统计软件项目报告
  2. Excel 中批量处理数据(改成 json 格式)
  3. 通信原理实践(一)——音频信号处理
  4. java并发编程-volatile内存实现和原理
  5. (8)Xwork容器概览
  6. 广东联通携手英特尔:发布业内首款定制物联网模块产品
  7. 一个到顶部自动加载更多的ListView
  8. DOS下文件操作命令
  9. C#操作ini文件类
  10. Linux启动过程综述(转)