炼数成金 门户 大数据 安全 查看内容

Tomcat 爆出高危漏洞!

2020-2-28 15:55| 发布者: 炼数成金_小数| 查看: 23707| 评论: 0|原作者: Hu3sky|来自: 安全客

摘要: 2020年02月20日, 360CERT 监测发现 国家信息安全漏洞共享平台(CNVD) 收录了 CNVD-2020-10487 Apache Tomcat文件包含漏洞。 CNVD-2020-10487/CVE-2020-1938是文件包含漏洞,攻击者可利用该高危漏洞读取或包含 Tomca ...
一、漏洞背景
安全公告编号:CNTA-2020-0004

2020年02月20日, 360CERT 监测发现 国家信息安全漏洞共享平台(CNVD) 收录了 CNVD-2020-10487 Apache Tomcat文件包含漏洞。

CNVD-2020-10487/CVE-2020-1938是文件包含漏洞,攻击者可利用该高危漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件或源代码等。

受影响的版本包括:Tomcat 6,Tomcat 7的7.0.100以下版本,Tomcat 8的8.5.51以下版本,Tomcat 9的9.0.31以下版本。

CNVD 对该漏洞的综合评级为“高危”。

二、影响版本
1、Apache Tomcat 9.x < 9.0.31
2、Apache Tomcat 8.x < 8.5.51
3、Apache Tomcat 7.x < 7.0.100
4、Apache Tomcat 6.x

三、漏洞分析
3.1 AJP Connector
Apache Tomcat服务器通过Connector连接器组件与客户程序建立连接,Connector表示接收请求并返回响应的端点。即Connector组件负责接收客户的请求,以及把Tomcat服务器的响应结果发送给客户。

在Apache Tomcat服务器中我们平时用的最多的8080端口,就是所谓的Http Connector,使用Http(HTTP/1.1)协议

在conf/server.xml文件里,他对应的配置为:
<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
而 AJP Connector,它使用的是 AJP 协议(Apache Jserv Protocol)是定向包协议。因为性能原因,使用二进制格式来传输可读性文本,它能降低 HTTP 请求的处理成本,因此主要在需要集群、反向代理的场景被使用。

Ajp协议对应的配置为:
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
Tomcat服务器默认对外网开启该端口 Web客户访问Tomcat服务器的两种方式:

3.2 代码分析
漏洞产生的主要位置在处理Ajp请求内容的地方org.apache.coyote.ajp.AbstractAjpProcessor.Java#prepareRequest()


这里首先判断SCAREQ_ATTRIBUTE,意思是如果使用的Ajp属性并不在上述的列表中,那么就进入这个条件


SCAREQREMOTEPORT对应的是AJPREMOTEPORT,这里指的是对远程端口的转发,Ajp13并没有转发远程端口,但是接受转发的数据作为远程端口。


于是这里我们可以进行对Ajp设置特定的属性,封装为request对象的Attribute属性 比如以下三个属性可以被设置:
javax.servlet.include.request_uri
javax.servlet.include.path_info
javax.servlet.include.servlet_path

3.3 任意文件读取


当请求被分发到org.apache.catalina.servlets.DefaultServlet#serveResource()方法


调用getRelativePath方法,需要获取到request_uri不为null,然后从request对象中获取并设置pathInfo属性值和servletPath属性值


接着往下看到getResource方法时,会把path作为参数传入,获取到文件的源码


漏洞演示:读取到/WEB-INF/web.xml文件


3.4 命令执行
当在处理 jsp 请求的uri时,会调用 org.apache.jasper.servlet.JspServlet#service()


最后会将pathinfo交给serviceJspFile处理,以jsp解析该文件,所以当我们可以控制服务器上的jsp文件的时候,比如存在jsp的文件上传,这时,就能够造成rce


漏洞演示:造成rce



四、修复建议
Apache Tomcat 6 已经停止维护,请升级到受支持的 Tomcat 版本以免遭受漏洞影响,请更新到如下Tomcat 版本:


0x05 相关空间测绘数据
360安全大脑-Quake网络空间测绘系统通过对全网资产测绘,发现 Apache Tomcat 在国内存在大范围的使用情况。具体分布如下图所示。

0x06 产品侧解决方案
6.1 360城市级网络安全监测服务
360安全大脑的QUAKE资产测绘平台通过资产测绘技术手段,对该类 漏洞/事件 进行监测,请用户联系相关产品区域负责人获取对应产品。

6.2 360AISA全流量威胁分析系统
360AISA基于360海量安全大数据和实战经验训练的模型,进行全流量威胁检测,实现实时精准攻击告警,还原攻击链。 目前产品具备该漏洞/攻击的实时检测能力。

0x07 时间线
2020-02-21 360-CERT 发布分析报告

下载链接如下:
7.0.100版本:https://tomcat.apache.org/download-70.cgi
8.5.51版本:https://tomcat.apache.org/download-80.cgi
9.0.31版本 https://tomcat.apache.org/download-90.cgi

声明:文章收集于网络,版权归原作者所有,为传播信息而发,如有侵权,请联系小编删除,谢谢!

欢迎加入本站公开兴趣群
软件开发技术群
兴趣范围包括:Java,C/C++,Python,PHP,Ruby,shell等各种语言开发经验交流,各种框架使用,外包项目机会,学习、培训、跳槽等交流
QQ群:26931708

Hadoop源代码研究群
兴趣范围包括:Hadoop源代码解读,改进,优化,分布式系统场景定制,与Hadoop有关的各种开源项目,总之就是玩转Hadoop
QQ群:288410967 
1

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (1 人)

最新评论

热门频道

  • 大数据
  • 商业智能
  • 量化投资
  • 科学探索
  • 创业

即将开课

 

GMT+8, 2020-4-2 08:23 , Processed in 0.137155 second(s), 24 queries .