tomcat ajp协议安全限制绕过漏洞_Apache Tomcat文件包含漏洞分析

更多安全资讯和分析文章请关注启明星辰ADLab微信公众号及官方网站(adlab.venustech.com.cn)

一、漏洞概述

f37ca7e63c0a4a8db75303d2d50fca03.gif

2020年2月20日,国家信息安全漏洞共享平台(CNVD)发布关于Apache Tomcat的安全公告,Apache Tomcat文件包含漏洞(CNVD-2020-10487,对应CVE-2020-1938)。Tomcat AJP协议由于存在实现缺陷导致相关参数可控,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若服务器端同时存在文件上传功能,攻击者可进一步实现远程代码的执行。

二、漏洞分析

f37ca7e63c0a4a8db75303d2d50fca03.gif

通过对Apache Tomcat源码进行分析,发现Tomcat在处理ajp协议时存在漏洞,可通过调用request.setAttribute为Tomcat设置任意request属性,如下图所示:

269943225be6eaf2c89010dc273d0e2b.png

通过分析复现发现Tomcat ajp协议存在web目录下任意文件读取漏洞以及JSP文件包含漏洞。当ajp URI设置为非jsp路径时,Tomcat会调用DefaultServlet处理,此时会导致web目录任意文件读取漏洞。当ajp URI设置为jsp路径时,Tomcat会调用JspServlet处理,此时会导致JSP文件包含漏洞。

2.1 Web目录任意文件读取漏洞

当ajp URI设置为非jsp路径时,Tomcat会调用DefaultServlet处理,我们需要控制如下两个属性: javax.servlet.include.path_info

javax.servlet.include.servlet_path

其中,javax.servlet.include.servlet_path属性为当前项目路径、javax.servlet.include.path_info属性为目录路径。然后,通过DefaultServlet类的getRelativePath方法进行拼接获得path路径。如下图所示:

8f055ed7f6712e39eeefeba9f4aaaefe.png

最后,会将path带入到getResource(path)方法中造成任意文件读取。如下图所示:

9ef418862446a56f861e6b77b6c3648d.png

利用该漏洞成功读取到/WEB-INF/目录下web.xml文件。

1b182041335596411348926e5d7c5213.png

2.2 Jsp文件包含漏洞 当ajp URI设置为jsp路径时,Tomcat会调用JspServlet的service方法处理,如下图所示:

64f89eee8bafd86117e0a5ceef9d2c66.png

同样会获取javax.servlet.include.path_info、javax.servlet.include.servlet_path这两个属性(经过上面的分析我们已经知道可以通过ajp协议控制这两个属性)。将这两个属性对应的值拼接到jspURi变量中,最后交给serviceJspFile方法处理,如下图所示:

83e92493fae3afd48bbfd2db95df93e7.png

Venus.txt文件代码如下所示:

bdfc18bb672b0bfd01cb01889a72f8e0.png

 成功RCE结果如下图所示:

227b4d5b6e805e4615520b5be1d11ae3.png

三、影响版本

f37ca7e63c0a4a8db75303d2d50fca03.gif

  • Tomcat 6

  • Tomcat 7

  • Tomcat 8

  • Tomcat 9

四、规避方案

f37ca7e63c0a4a8db75303d2d50fca03.gif

  • 将Tomcat立即升级到9.0.31、8.5.51或7.0.100版本进行修复。
  • 禁用AJP协议。

编辑 /conf/server.xml,找到如下行: 将此行注释掉(也可删掉该行):
  • 配置secret来设置AJP协议的认证凭证。

例如( 注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被 轻易猜 解的值):

启明星辰积极防御实验室(ADLab)

ADLab成立于1999年,是中国安全行业最早成立的攻防技术研究实验室之一,微软MAPP计划核心成员,“黑雀攻击”概念首推者。截止目前,ADLab已通过CVE累计发布安全漏洞1000余个,通过 CNVD/CNNVD累计发布安全漏洞600余个,持续保持国际网络安全领域一流水准。实验室研究方向涵盖操作系统与应用系统安全研究、移动智能终端安全研究、物联网智能设备安全研究、Web安全研究、工控系统安全研究、云安全研究。研究成果应用于产品核心技术研究、国家重点科技项目攻关、专业安全服务等。

56df10652c42ed32b984670e771dd8e0.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值