天天看点

tomcat put方法任意写文件漏洞复现(CVE-2017-12615)

一丶漏洞原理

        Windows服务器下,将readonly参数设置为false时(默认设置为true),即可通过PUT方式创建一个JSP文件,并可以执行任意代码。Windows不允许空格作为文件名结尾,所以我们上传的末尾带空格的jsp文件,就会自动创建一个jsp文件,导致代码执行。影响版本:7.0.0~7.0.79

        几种绕过Tomcat的检测方式

1.利用Windows NTFS特性,evil.jsp::$DATA等于生成一个evil.jsp的jsp文件

二丶漏洞环境

       1丶 kail下,进入vulhub-master/tomcat/CVE-2017-12615目录

tomcat put方法任意写文件漏洞复现(CVE-2017-12615)

 2丶docker-compose build 创建容器

      docker-compose up -d 启动容器

tomcat put方法任意写文件漏洞复现(CVE-2017-12615)

 3丶运行完成后访问http://your-ip:8080即可看到Tomcat的Example页面

tomcat put方法任意写文件漏洞复现(CVE-2017-12615)

三丶漏洞复现

 4丶打开bp直接抓包将构造好的数据包发送到根目录

tomcat put方法任意写文件漏洞复现(CVE-2017-12615)

5丶访问写入的666.jsp文件,证明漏洞存在

tomcat put方法任意写文件漏洞复现(CVE-2017-12615)

 6丶利用Windows NTFS文件特性

tomcat put方法任意写文件漏洞复现(CVE-2017-12615)
tomcat put方法任意写文件漏洞复现(CVE-2017-12615)

 7丶上传一个webshell,使用蚁剑连接

tomcat put方法任意写文件漏洞复现(CVE-2017-12615)

四丶修复方案

禁用PUT请求方法,设置为false

tomcat put方法任意写文件漏洞复现(CVE-2017-12615)

继续阅读