前言
由于Windows文件系统与Tomcat在路径大小写区分处理上的不一致,当启用了默认servlet的写入功能(设置readonly=false
且允许PUT方法),未经身份验证的攻击者可以构造特殊路径绕过Tomcat的路径校验机制,通过条件竞争不断发送请求上传包含恶意JSP代码的文件触发Tomcat对其解析和执行,从而实现远程代码执行
声明
请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用。
一、漏洞描述
该漏洞存在于windows文件系统与Tomcat在路径大小写敏感性处理上的不一致,攻击者利用了Tomcat路径校验逻辑中的缺陷,通过绕过路径一致性检查,将原本无法解析的文件(如大小写不同的JSP文件)转为可解析状态。
当默认Servlet的readonly
参数被设置为false
(非默认配置)并允许使用PUT方法上传文件时,攻击者能够上传包含恶意JSP代码的文件并通过条件竞争不断发送请求,触发Tomcat对其解析和执行,最终实现远程代码执行。
二、漏洞版本
• Apache Tomcat 11.0.0-M1 to 11.0.1
• Apache Tomcat 10.1.0-M1 to 10.1.33<