1.简介:
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
2.漏洞描述:
由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件。
3.环境搭建:
java环境(因为tomcat是java写的,运行需要java环境)。
python环境(因为poc是python写的)。
Apache tomcat/9.0.13(我这里使用的是9.0.13版本,当然可以下载其他的版本)。
下载Poc(poc下载:https://pan.baidu.com/s/1PSdzhzGWu8TGd5p3rou5og 提取码:lo94)
4.漏洞复现:
环境搭建好开始漏洞复现,
将tomcat文件解压到你要安装的文件夹下,进入文件夹中的bin文件夹,使用cmd命令执行startup.bat文件,出现加载界面。
如果执行startup.bat时候出现报错,那就需要在setclasspath.bat文件开头声明环境变量在里面添加自己本地jdk、jre路径。
待加载完成后在浏览器访问http://127.0.0.1:8080界面访问成功则说明tomcat安装成功,然后在服务中启动apache tomcat服务。
对其进行端口扫描发现8009和8080端口开启,证明存在该漏洞。
进入下载好的POC目录下CMD命令执行并加上网址参数,命令为(python ./CNVD-2020-10478-Tomcat-Ajp-lfi.py ip地址 –p 8009 –f WEB-INF/web.xml)执行成功后可以看到成功读取到web源码。
4.影响版本:
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
5.修复建议:
- 临时禁用AJP协议端口,在conf/server.xm l配置文件中注释掉<Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />。
- 配置ajp配置中的secretRequired跟secret属性来限制认证。