(CVE-2017-12615)APACHE TOMCAT 远程代码执行漏洞 (带解决方案)
(CVE-2017-12615)APACHE TOMCAT 远程代码执行漏洞
一、漏洞简介
当 Tomcat运行在Windows操作系统时,且启用了HTTP PUT请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 文件,JSP文件中的恶意代码将能被服务器执行。导致服务器上的数据泄露或获取服务器权限。
二、复现过程
中间件版本如下
根据漏洞原理修改请求方法为PUT 并在请求体中写入文件内容
文件上传成功
三、临时防护方案
用户可以禁用PUT方法来防护此漏洞,操作方式如下:
在Tomcat的web.xml 文件中配置org.apache.catalina.servlets.DefaultServlet的初始化参数
<init-param>
<param-name>readonly</param-name>
<param-value>true</param-value>
</init-param>
确保readonly参数为true(默认值),即不允许DELETE和PUT操作。
注意:
如果禁用PUT方法,对于依赖PUT方法的应用,可能导致业务失效。
参考链接
https://www.cnblogs.com/dgjnszf/p/10793604.html
https://xz.aliyun.com/t/7991#toc-1