CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取

一、环境搭建

我使用windows搭建,看别人用docker搭建好方便耶~ 啊。。。。。。可恶
tomcat 8.0.1 下载:https://archive.apache.org/dist/tomcat
poc下载:https://github.com/00theway/Ghostcat-CNVD-2020-10487


ajp的作用:

AJP是为Tomcat与HTTP服务器之间通信而定制的协议,能提供较高的通信速度和效率
AJP 集群化才是首选方式
AJP 可以理解为HTTP协议的二进制性能优化版本,能降低HTTP请求的处理成本,所以主要在需要集群、反向代理的高并发需要高处理能力的场景中使用。

参考资料:https://www.cnblogs.com/guanghuiqq/p/11204719.html


windows jdk环境变量配置

CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取_第1张图片
CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取_第2张图片
CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取_第3张图片

tomcat 环境变量配置

CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取_第4张图片
CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取_第5张图片


二、运行tomcat

不要关闭弹窗

CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取_第6张图片

三、nmap扫描

CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取_第7张图片

四、攻击

读取到了 web.xml 文件
CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取_第8张图片

六、修复

1、临时缓解:注释掉这句
CNVD-2020-10487(CVE-2020-1938) tomcat ajp协议任意文件读取_第9张图片
2、添加认证凭证
具体操作如下

使用Tomcat 7和Tomcat 9的用户可为AJP Connector配置secret来设置AJP协议的认证凭证。例如(注意必须将YOURTOMCATAJP_SECRET更改为一个安全性高、无法被轻易猜解的值):<Connectorport=”8009″protocol=”AJP/1.3″redirectPort=”8443″address=”YOUR_TOMCAT_IP_ADDRESS”secret=”YOUR_TOMCAT_AJP_SECRET”/>
使用Tomcat 8的用户可为AJP Connector配置requiredSecret来设置AJP协议的认证凭证。例如(注意必须将YOURTOMCATAJP_SECRET更改为一个安全性高、无法被轻易猜解的值):<Connectorport=”8009″protocol=”AJP/1.3″redirectPort=”8443″address=”YOUR_TOMCAT_IP_ADDRESS”requiredSecret=”YOUR_TOMCAT_AJP_SECRET”/> 

3、下载最新版


参考资料:
https://www.freebuf.com/company-information/230071.html
https://blog.csdn.net/weixin_44398914/article/details/104432166


你可能感兴趣的:(tomcat)