今天跟大家分享Tomcat 爆出高危漏洞及修复的知识。

1 Tomcat 爆出高危漏洞及修复

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

Tomcat是由Apache软件基金会属下Jakarta项目开发的Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。

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

1.2 影响版本
Apache Tomcat 9.x < 9.0.31
Apache Tomcat 8.x < 8.5.51
Apache Tomcat 7.x < 7.0.100
Apache Tomcat 6.x

1.3 漏洞分析
1.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服务器的两种方式:

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

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

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

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

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

1.3.3 任意文件读取

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

调用getRelativePath方法,需要获取到request_uri不为null,然后从request对象中获取并设置pathInfo属性值和servletPath属性值
接着往下看到getResource方法时,会把path作为参数传入,获取到文件的源码

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

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

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

漏洞演示:造成rce

1.4 修复建议

更新到如下Tomcat 版本:
Tomcat 分支 版本号
Tomcat 7 7.0.0100
Tomcat 8 8.5.51
Tomcat 9 9.0.31
Apache Tomcat 6 已经停止维护,请升级到最新受支持的 Tomcat 版本以免遭受漏洞影响。

请广大用户时刻关注 Apache Tomcat® – Welcome! 获取最新的 Tomcat Release版本,以及 apache/tomcat: Apache Tomcat 获取最新的 git 版本。

1.5 相关空间测绘数据

1.6 产品侧解决方案

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

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

关于Tomcat 爆出高危漏洞及修复,你学会了多少?欢迎在留言区评论!

Tomcat 爆出高危漏洞及修复相关推荐

  1. Tomcat 爆出高危漏洞!

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 一.漏洞背景 安全公告编号:CNTA-2020-0004 2020 ...

  2. Tomcat爆出高危漏洞

    作者:Hu3sky@360CERT 原文链接:https://www.anquanke.com/post/id/199448#h2-0 0x01 漏洞背景 2020年02月20日, 360CERT 监 ...

  3. 360修复高危漏洞可以修复吗_360代码卫士助D-LINK修复多个高危漏洞

    近期,360企业安全集团代码卫士团队安全研究人员发现友讯(D-LINK)公司旗下产品系列 DIR-619.DIR-605 系列路由器的两个高危安全漏洞(CVE-2018-20056和CVE-2018- ...

  4. oracle四月份高危漏洞自动化修复办法

    cve公告 Oracle官方发布了2021年4月的补丁修复如下漏洞: CVE-2021-2157 CVE-2021-2294 CVE-2021-2204 CVE-2021-2214 CVE-2021- ...

  5. Tomcat 又爆出高危漏洞!Tomcat 8.5~10 中招…

    作者 | 栈长 来源 | Java技术栈 开源界最近很热闹啊,各个主流软件或框架漏洞频发,比如像 Struts2.FastJSON.Dubbo.Redis.Tomcat 等都存在各种各样的漏洞. 不要 ...

  6. php 7.2.2bug,Discuz 7.2版本高危漏洞bug修复

    使用discuz建站的朋友们应该都知道,discuz现在已经更新到X3.2版本了,功能也和旧版本有了一些区别.小编今天在逛论坛看到一个关于discuz老版本的消息,说的是Discuz! 7.2 系列论 ...

  7. 服务器高危漏洞需要修复吗,Win10被曝新的HTTP协议高危漏洞:需安装KB5003173可彻底修复...

    Win10又出现安全漏洞了,昨天安全研究人员在推特上公布Windows 10安全漏洞概念验证,此漏洞位于HTTP协议可远程触发.漏洞在被公布前已经通报给微软进行修复,微软在本月发布的累积更新中修复漏洞 ...

  8. Mysql5.7.12高危漏洞升级修复

    问题描述 漏洞类型 数据库漏洞 CVSS评分 9.8 CVE编号 CVE-2019-3822 CNNVD编号 CNNVD-201902-124 CNVD编号 – CNCVE编号 CNCVE-20193 ...

  9. nvidia旧版驱动_N卡用户注意:老版驱动存在5个高危漏洞,赶紧更新

    8月5日消息,NVIDIA发布安全公告称,在目前的Windows显卡驱动中发现了五个高危级别的安全漏洞,用户可通过升级至最新版的431.60版本显卡驱动来修复这些漏洞. 据NVIDIA公告显示,这些漏 ...

最新文章

  1. QT中Widget去除系统提供工具以及系统默认边框
  2. PL/SQL -- 函数
  3. Linux添加文件命令
  4. PHP,操作多个用户,多个线程的session,实现用户登陆状态session值的自动更新
  5. P3899 [湖南集训]谈笑风生
  6. Charles监听HTTPS请求
  7. 广义表head tail 运算_双链表实现LRU缓存淘汰策略
  8. 协议 ---ISO/OSI协议模型详解
  9. Qt——原地奔跑的小人
  10. 云音乐计算机等科目英文,音乐英文术语
  11. 【github】论怎么去写一个高大上的ReadMe
  12. unrecognized selector sent to instance 0x7fbb51c7c490问题解决方法之一
  13. synchronized锁升级那点事
  14. HTML5 - 限制input file 可选择的文件类型
  15. 阿里云服务器相关操作
  16. 连接Apple ID服务器时出错
  17. Deep Learning for Modulation Classification: Signal Features in Performance Analysis解读
  18. Geography Markup Language (GML)
  19. cfd软件对电脑配置要求_[转载]不同电脑配置运行fluent的对比
  20. iphone标记无法储存更改_技巧 | 教你去除iPhone设置上烦人的“1”

热门文章

  1. 【交叉熵损失函数】关于交叉熵损失函数的一些理解
  2. 自定义平台MQ,SpringBoot自动注入【xdx-mq-starter】
  3. H3C Telnet无密远程终端连接配置命令
  4. UniApp + JAVA连接百度云ocr进行身份证识别
  5. JavaScript 心灵鸡汤
  6. java 证书链_java – 获取证书链
  7. 【openWrt】安装后进行定制
  8. Linux 第0章 - 计算机概论
  9. css+js实现一个跳动的loading动画效果
  10. 日志易饶琛琳分享:AI 助力日志中心智能化运营