freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Apache Tomcat文件包含漏洞分析
2020-05-15 11:33:08
所属地 北京

一、漏洞概述

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

二、漏洞分析

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

image.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路径。如下图所示:

image.png

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

image.png

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

image.png

2.2 Jsp文件包含漏洞

当ajp URI设置为jsp路径时,Tomcat会调用JspServlet的service方法处理,如下图所示:

image.png

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

image.png

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

image.png

成功RCE结果如下图所示:

image.png

三、影响版本:

Tomcat 6

Tomcat 7

Tomcat 8

Tomcat 9

四、规避方案

(1)将Tomcat立即升级到9.0.31、8.5.51或7.0.100版本进行修复

(2)禁用AJP协议

编辑 /conf/server.xml,找到如下行:

<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />

将此行注释掉(也可删掉该行):

<!--<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />-->

(3)配置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"/>。


image.png


# 漏洞分析 # 漏洞分析,WEB安全
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者