Tomcat远程代码执行漏洞CVE-2017-12615

CVE号:
CVE-2017-12615

漏洞危害:

【安全加固】Tomcat限制不安全的HTTP方法


由上文得知Tomcat默认就是不允许使用PUT方法。
需要修改配置开启PUT方法,修改conf/web.xml,添加

<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>

直接PUT上传Webshell。

一开始影响平台为Windows,受影响版本为Apache Tomcat 7.0.0 – 7.0.81。

复现过程如下
默认是无法上传jsp文件的

Windows环境下利用Windows 的特性。其一是 NTFS 文件流

其二是文件名的相关限制(如 Windows 中文件名不能以空格结尾)

后来披露Linux 和 Windows 服务器平台下从5.x到9.x全部的Tomcat版本都受影响,当 PUT 地址为/1.jsp/时,仍然会创建 JSP。
Windows下Apache Tomcat/8.0.46:

Linux下Apache Tomcat/8.0.46

这里有朋友问Nginx方向代理到Tomcat上,后端的Tomcat如果开启了PUT方法是否受影响,其实Nginx本身没有禁止PUT方法,所以还是会转发到后端,同样是受影响。

参考文章:
http://www.freebuf.com/vuls/148283.html