中国城市建设控股集团有限公司网站,做网站有用吗,智慧团手机网上登录入口,庆阳北京网站建设9 月 19 日#xff0c;腾讯云安全中心监测到 Apache Tomcat 修复了2个严重级别的漏洞#xff0c; 分别为#xff1a; 信息泄露漏洞#xff08;CVE-2017-12616#xff09;、远程代码执行漏洞#xff08;CVE-2017-12615#xff09;#xff0c;在某些场景下#xff0c;攻…9 月 19 日腾讯云安全中心监测到 Apache Tomcat 修复了2个严重级别的漏洞 分别为 信息泄露漏洞CVE-2017-12616、远程代码执行漏洞CVE-2017-12615在某些场景下攻击者将分别能通过这两个漏洞获取用户服务器上 JSP 文件的源代码或是通过精心构造的攻击请求向用户服务器上传恶意 JSP 文件通过上传的 JSP 文件 可在用户服务器上执行任意代码。 云鼎实验室通过对于漏洞描述搭建漏洞环境并对其进行复现。此漏洞为高危漏洞即使是非默认配置但是一旦存在漏洞那么攻击者可以成功上传 webshell并控制服务器。 复现 根据描述在 Windows 服务器下将 readonly 参数设置为 false 时即可通过 PUT 方式创建一个 JSP 文件并可以执行任意代码。
通过阅读 conf/web.xml 文件可以发现 默认 readonly 为 true当 readonly 设置为 false 时可以通过 PUT / DELETE 进行文件操控。
配置 readonly 为 false 启动 Tomcat利用 PUT 请求创建文件 提示 404。通过描述中的 Windows 受影响可以结合 Windows 的特性。其一是 NTFS 文件流其二是文件名的相关限制如 Windows 中文件名不能以空格结尾来绕过限制 访问发现可以正常输出 分析
Tomcat 的 Servlet 是在 conf/web.xml 配置的通过配置文件可知当后缀名为 .jsp 和 .jspx 的时候是通过JspServlet处理请求的 可以得知“1.jsp ”末尾有一个和空格并不能匹配到 JspServlet而是会交由DefaultServlet去处理。当处理 PUT 请求时 会调用resources.rebind dirContext 为FileDirContext 调用 rebind创建文件 又由于 Windows 不允许“ ”作为文件名结尾所以会创建一个 .jsp 文件导致代码执行。 Bypass 分析 然而经过黑盒测试当 PUT 地址为/1.jsp/时仍然会创建 JSP会影响 Linux 和 Windows 服务器并且 Bypass 了之前的补丁分析如下。 在进入 bind 函数时会声明一个 File 变量 进入 File 后会对 name 进行 normalize 最后得到的 path 就是没有最后 / 的 path 了: 影响 由于存在去掉最后的 / 的特性那么这个漏洞自然影响 Linux 以及 Windows 版本。而且经过测试这个漏洞影响全部的 Tomcat 版本从 5.x 到 9.x 无不中枪。目前来说最好的解决方式是将 conf/web.xml 中对于 DefaultServlet 的 readonly 设置为 true才能防止漏洞。