千家信息网

如何进行Tomcat执行任意代码漏洞的分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家介绍如何进行Tomcat执行任意代码漏洞的分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。我们本次分析两个 CVE 中的一个漏洞,该漏洞比官方公告影响范围还要广,
千家信息网最后更新 2026年11月02日如何进行Tomcat执行任意代码漏洞的分析

这篇文章给大家介绍如何进行Tomcat执行任意代码漏洞的分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

我们本次分析两个 CVE 中的一个漏洞,该漏洞比官方公告影响范围还要广,除了 Windows 平台之外,其他平台也以另外的一种利用形式受到影响,具体执行任意代码的风险,故在此描述,各位朋友查看自己的应用,如果有影响请尽快修复。

漏洞描述

9月19日晚, Apache Tomcat 官方公告称 所有 Windows 平台上 开启了 HTTP PUT 方法支持的, 都有远程代码执行的风险。漏洞代码: CVE-2017-12615

官方描述如下:

详细说明:

我们很久之前的文章介绍过, Tomcat 里包含了两个默认的 Servlet, 用于处理特定的请求,一个是 DefaultServlet,一个是 JspServlet。这两个 Servlet 都是在 Tomcat 默认的 web.xml 里被包含进来,与自定义的web.xml 进行 merge,所以每个应用都会有这两个 Servlet。

由于每个 Servlet 都可以设置一些初始化参数(init-param) ,所以在默认的web.xml 里包含一些常用的,例如是否允许文件列表,是否debug,fileEncoding, sendFile的大小 等等。 这其中就可以设置是否允许HTTP PUT 方法。

参数配置项:readOnly, 主要用于对于HTTP 的 PUT / DELETE 方法是否进行拒绝。

readOnly

false

readOnly 默认是true, 也就是默认并没有启用PUT、DELETE这些方法。 如果有些朋友的容器由于应用依赖,开启了readOnly ,一定要注意!!!

我们来看,在 DefaultServlet 的 PUT处理逻辑中,会先判断readOnly

对于 DefaultServlet 的mapping 配置如下:

此时,如果请求URL 类似这样:

请求方法: PUT

path: http://xxx/context/abc.jsp/

data: 使用raw格式 <%out.println("Hello World");%>

使用Postman可以轻松构造一个(使用方法可以参考:Web开发神器之PostMan,接口测试再也不愁了)

PUT 的内容实际在处理时,会提取,并进行写操作

if(this.resources.write(path, (InputStream)resourceInputStream, true)) {
if(resource.exists()) {
resp.setStatus(204);
} else {
resp.setStatus(201);
}
} else {
resp.sendError(409);
}

这里的路径,虽然是abc.jsp/ ,但在实际处理时,会进行处理,由于文件名规范的限制,最后的一个/ 会被处理,所以就创建出了一个名为abc.jsp的文件,文件内容就是我们传来的raw 里的内容。而这里的内容是可以随意写的。

当PUT请求返回后,再次请求 abc.jsp, 此时 raw里随意写的内容就会被执行,也就是我们前面所说的任意代码执行的风险。

Apache Tomcat 官方描述的在 Windows 平台中的漏洞,也是和命名问题,如果请求时url里是以abc.jsp%20这样的 PUT 请求,到达 DefaultServlet 处理时,创建文件依然会把%20这个空格过滤掉,风险同上。

解决方案:

处理这个问题需要把 readOnly 设置为 true,或者保持初始值,不在web.xml中增加配置。

关于如何进行Tomcat执行任意代码漏洞的分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

处理 漏洞 内容 代码 方法 文件 两个 官方 平台 风险 分析 应用 影响 配置 也就是 公告 参数 实际 文章 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南云网互联网络科技有限公司 互联网科技公司起名 广州百单互联网科技有限公司 互联网科技资迅 互联网科技公司发展 撒么互联网科技公司 互联网金融监管科技 华脉科技工业互联网产品 农村开互联网科技讲堂 互联网校园科技培训 中国互联网十大科技股排名 保险科技服务互联网营销体系 无锡工业互联网科技有限公司 互联网科技资金流入 科技互联网经济论坛 青岛易易互联网科技 科技互联网专业工作会议发言稿 广东猫王互联网科技有限公司电话 瑞安市蟠桃会互联网科技有限公司 伍佰万互联网科技是干嘛的 高科技互联网 宁夏众和广鑫互联网科技有限公司 和信科技工业互联网 浙南科技城互联网大厦建设工程 世界互联网领先科技成果获奖 山东星卡互联网科技有限公司官网 杭州披云加互联网科技有限公司 有人说阿里系是互联网科技企业 上海同邻互联网科技有限公司规模 山东亿川互联网科技有限责任公司
0