【vulhub】tomcat CVE-2017-12615(任意写入文件)
渗透环境
攻击机: 192.168.66.130(Kali)
漏洞收录于:vulhub/tomcat/CVE-2017-12615
涉及知识点:tomcat任意文件写入
漏洞详情
当 Tomcat 运行在 Windows 系统且启用了 HTTP PUT 方法(通过将 readonly
参数设置为 false
)时,攻击者可构造恶意请求上传 JSP 文件,导致服务器执行任意代码,进而引发数据泄露或服务器权限被控制。
关键点:
- 触发条件:需手动修改
conf/web.xml
文件中的readonly
参数为false
(默认值为true
,PUT/DELETE 方法被禁用)。 - 绕过限制:Tomcat 默认通过
JspServlet
处理.jsp
文件的上传,但攻击者可通过以下方式绕过限制,使文件由处理静态资源的DefaultServlet
处理:- 文件名后添加空格(
evil.jsp%20
,利用 Windows 不允许文件名以空格结尾的特性)。 - 使用 NTFS 文件流特性(
evil.jsp::$DATA
)。 - 文件名后添加斜杠(
evil.jsp/
,此方法甚至影响 Linux 系统及 Tomcat 5.x-9.x 版本)4711。
- 文件名后添加空格(
影响范围:
-
受影响的 Tomcat 版本:
- Apache Tomcat 7.0.0 至 7.0.81(官方公告范围)。
- 部分测试显示 Tomcat 8.5.19 等版本也可能受影响。
-
操作系统:主要针对 Windows,但通过添加斜杠的绕过方式(
evil.jsp/
)可扩展至 Linux 系统。
攻击思路:
上传木马文件,webshell管理工具进行连接
复现漏洞
vulhub启动漏洞环境
docker-compose up -d
可以看到该容器运行在8080端口。
访问8080端口,burpsuite抓包
使用webshell generate
快速生成木马,项目地址:cseroad/Webshell_Generate: 用于生成各类免杀webshell
将生成的木马上传。这里使用PUT方法进行上传,文件名可以是/xxx.jsp/
、/xxx.jsp%20
、/xxx.jsp/
返回201即上传成功,使用蚁剑进行连接
连接成功
分类:
Vulhub
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义