一、CVE-2017-12615 漏洞复现
1、漏洞基本情况
漏洞类型: 任意文件上传
漏洞原理: 如果如果Tomcat开启了PUT方法(默认关闭,但是有些页面需要PUT,无法关闭),并且配置文件web.xml中的readonly设置为了false,则有可能产生该漏洞,攻击者可以利用PUT方法上传jsp文件,从而造成远程命令执行,getshell等。
利用条件: tomcat在windows上运行,开启了IIS PUT方法,配置文件web.XML中的readonly设置为了false。
影响版本: Apache Tomcat 7.0.0 - 7.0.79
2、漏洞复现
漏洞环境说明: 此漏洞环境使用vulhub 的docker镜像搭建,具体方法不赘述。
复现步骤:
-
使用burpsuite抓包,修改请求信息。响应码为201说明上传成功!
需要注意的是:上传对jsp后缀的文件进行了限制,需要进行绕过,此处可以利用windows特性,加NTFS文件流或者加空格字符进行绕过,也可以如图所示,添加斜杠进行绕过。
-
访问上传内容,返回上传信息,说明上传成功。
-
使用POC进行漏洞利用:
二、CVE-2020-1938漏洞复现
1、漏洞基本情况
漏洞类型:文件包含漏洞
漏洞原理: Tomcat 配置了两个Connecto,它们分别是 HTTP 和 AJP :HTTP默认端口为8080,处理http请求,而AJP默认端口8009,用于处理 AJP 协议的请求,而AJP比http更加优化,多用于反向、集群等,漏洞由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件以及可以包含任意文件,如果有某上传点,上传图片马等等,即可以获取shell。
利用条件: tomcat版本低于9.0.31,没有关闭8009端口。
影响版本:
Apache Tomcat 6
Apache Tomcat 7 < 7.0.100
Apache Tomcat 8 < 8.5.51
Apache Tomcat 9 < 9.0.31
2、漏洞利用
使用公开的POC进行利用,POC可自行到github 上搜索漏洞编号下载。
利用过程: