漏洞简介
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器。由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。
影响范围
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
实战复现
- 先通过扫描端口看到目标站点开启AJP8009端口
- 再通过访问Tomcat默认页面/报错页面得到版本为8.5.32
文件读取
使用POC验证,可成功读取到WEB-INF目录下的web.xml文件
相关POC:
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
https://github.com/hypn0s/AJPy
文件包含
参考链接及EXP:
https://xz.aliyun.com/t/7325
https://www.jianshu.com/p/33bc37198c1a
修复建议
1、禁用AIP协议端口,在conf/server.xml配置文件中注释掉<Connector port=“8009” protocol="AJP/1.3"redirectPort=“8443”/>;
2、升级最新版本;
3、Tomcat 7和Tomcat 9可为AJP Connector配置secret来设置AJP协议的认证凭证;
4、Tomcat 8的可为AJP Connector配置requiredSecret来设置AJP协议的认证凭证。
GOT IT!
******************************************************
具体利用方式需根据具体实践场景~