Tag: Tomcat文件包含漏洞:CNVD-2020-10487(简介/验证/利用/修复)

  • Tomcat文件包含漏洞:CNVD-2020-10487(简介/验证/利用/修复)

    Tomcat文件包含漏洞:CNVD-2020-10487(简介/验证/利用/修复)

    Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件(webapps目录)。 影响范围 Apache Tomcat 6 Apache Tomcat 7 < 7.0.100 Apache Tomcat 8 < 8.5.51 Apache Tomcat 9 < 9.0.31 开启靶机 (1)此处直接使用vulhub搭建,方便快速,一键搞定。vulhub的搭建参见https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md,此处不在赘述。 vulhub安装完后,直接进入tomcat/CVE-2020-1938目录下,输入docker-compose up -d启动(最好开代理下载会快很多) (2)docker ps命令确认8080端口的apache已开启,8009端口的AJP服务也已开启。8009服务就是该漏洞所在服务,但是无法通过浏览器来直接访问连接。 漏洞验证(POC) (1)使用github上检测脚本:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi,输入python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.3.103 -p 8009,成功读取WEB-INF/web.xml文件,漏洞验证成功。(python2版本) 漏洞利用 由于该漏洞利用有一点限制,必须要将文件上传到web目录下,文件后缀名不限,然后可以实现反弹shell。 (1)生成jsp文件反弹shell (2)使用脚本执行上传的shell.jsp文件 (3)kali上监听地址,收到反弹的shell 漏洞修复 如果相关用户暂时无法进行版本升级,可根据自身情况采用下列防护措施。 一、若不需要使用Tomcat AJP协议,可直接关闭AJP Connector,或将其监听地址改为仅监听本机localhost。 具体操作: (1)编辑 <CATALINA_BASE>/conf/server.xml,找到如下行(<CATALINA_BASE> 为 Tomcat 的工作目录): <Connector port=”8009″protocol=“AJP/1.3” redirectPort=“8443”…