tomcat-CNVD-2020-10487-漏洞处理

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是文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件、源代码等。

问题来源
ajp13是一个二进制的TCP传输协议,相比HTTP这种纯文本的协议来说,效率和性能更高,也做了很多优化,但是,浏览器并不能直接支持AJP13协议,只支持HTTP协议,通过Apache的proxy_ajp模块进行反向代理,暴露成http协议给客户端访问。其他支持AJP协议的代理服务器当然也可以用这种做法。但是实际情况是,支持AJP代理的服务器非常少,比如目前很火爆的Nginx就没这个模块。因此tomcat的配置大部分都是关闭AJP协议端口的,因为除了Apache之外别的http server几乎都不能反代AJP13协议,自然就没太大用处了。

问题处理
升级版本

Tomcat 分支 版本号
Tomcat 7 7.0.0100
Tomcat 8 8.5.51
Tomcat 9 9.0.31
1 如果你的服务是 放在tomcat (外网)的webapp目录下 ,那么你需要升级

2 如果你的服务是 apache+tomcat (内网),并且服务在tomcat的webapp目录下,那么你需要升级

3 如果你的服务是 nginx + tomcat(内网) ,那你貌似不需要担心,因为nginx,不支持ajp

3 如果你的服务 springboot ,直接对外,那你也不需要升级因为

如图所示,springboot 微服务 默认使用 http请求,没有使用ajp,二者是if else的关系。

攻击方式
这个是重点,有漏洞必须自己能够攻击才能验证自己有没有修复好

攻击代码地址

https://github.com/threedr3am/learnjavabug/blob/master/tomcat/ajp-bug/src/main/java/com/threedr3am/bug/tomcat/ajp/FileRead.java

端口是ajp服务的端口,如何查看呢

文件位置: apache-tomcat-8.5.32\conf\server.xml
注意内容:

攻击 单独启动tomcat的服务 的http端口,默认8080,无效,

攻击tomcat服务的ajp端口,默认 8009 ,拿到文件了 。

也可以攻击一下自己的springboot微服务,看看自己服务有么有问题,我就是这么干的

攻击ajp端口,无效,预料之中

攻击http端口,报错

这也说明,如果你的服务有这个报错,那就是有人攻击你 ,需要注意了

你可能感兴趣的:(工程师)