文章目录
前言
一、漏洞名称
二、漏洞描述
三、受影响端口
四、受影响版本
五、漏洞验证
六、修复建议
前言
近日在做漏扫时发现提示服务器存在CVE-2020-1938漏洞,故文章记录一下相关内容。
一、漏洞名称
Tomcat 文件读取/文件包含漏洞(CVE-2020-1938)
二、漏洞描述
CVE-2020-1938是由长亭科技安全研究员发现的存在于 Tomcat 中的安全漏洞,由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码,此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。
三、受影响端口
8080、8009(默认)
四、受影响版本
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
五、漏洞验证
1)漏扫软件截图
2)msf验证
msfconsole
search cve-2020-1938
use 0
set rhosts xxxxx
run
可以看到能够读取到目标主机tomcat目录下的配置文件中/WEB-INF/web.xml文件
在/WEB-INF/目录下创建测试文件test.txt 内容为:123
重新设置参数
set filename /WEB-INF/test.txt
一样可以读取到
再在上层目录ROOT下创建测试文件test.txt ,内容:123,同样可以读取
至此漏洞复现完成
六、修复建议
1、首先建议升级 tomcat 版本,升级到 9.0.31、8.5.51 或 7.0.100 以上版本。
2、无法更新版本,可以考虑临时禁用 AJP 协议8009端口
在 tomcat 根目录下找到 conf/server.xml 配置文件中注释掉
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
3、若需使用 Tomcat AJP 协议,可根据使用版本配置协议属性设置认证凭证。