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

近日,奇安信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发布安全风险通告第三次更新

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值