目录
前言
tomcat和apache一样是一个免费的服务器,主要用于jsp框架的网站,可以看作是apache的一个扩展,但是运行的时候和apache属于不同的进程。本文主要介绍tomcat的未授权访问、任意文件上传、文件包含漏洞。
一、任意文件上传
1.1 影响版本
tomcat 7.0.x --------------cve-2017-12615
1.2 初始配置
需要在windows下将配置文件的readonly改为false
1.3 漏洞详情
tomcat允许适用put方法上传任意文件类型,但不允许jsp后缀文件上传,因此我们需要配合windows的解析漏洞,适用诸如 1.jsp%20 、 1.jsp::$DATA 则可以成功绕过检测上传成功。
注意:若是linux + tomcat5.0~9.0 ,可以上传1.jsp/绕过
访问成功
二、CVE-2020-1938 文件包含漏洞
2.1 影响版本
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
2.2 漏洞详情
该漏洞由于tomcat的ajp协议对请求参数的检查不严格,导致攻击者可以构造特定ajp请求,设置request参数,可以读取和包含webapp目录下的任意文件。
若请求的URI为jsp路径,那么文件就会包含此jsp文件,以jsp格式执行。若URI非jsp文件,那么就会读取此文件内容。
poc地址https://github.com/0nise/CVE-2020-1938
三、未授权弱口令+war后门上传
tomcat如因配置不当导致未授权直接登录后台,或者由于弱口令的存在登录后台,可以在后台上传war包,我们可以将jsp代码植入到war包里面,然后访问该war包即可执行jsp代码。
war包制作命令,在jdk目录下: jav cvf shell.war 1.jsp 完成制作
同时msf的exploit/multi/http/tomcat_mgr_upload模块可以执行此操作
总结
tomcat常见的就是如上漏洞,最重要的防御就是修改配置文件,防止未授权访问、弱口令、PUT方式传文件、readonly等,更新最新版本的tomcat。