Tomcat put文件上传漏洞(CVE-2017-12615)


Tomcat put文件上传漏洞(CVE-2017-12615)

漏洞描述:

当Tomcat运行在Windows操作系统上,且启用了HTTP PUT请求方法(将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求上传任意文件,包括JSP类型的木马。

影响范围:

Apache Tomcat 7.0.0 - 7.0.81

环境准备:

虚拟机: VMware

操作系统: Windows7

java环境(jdk 1.7.0-ea)

Tomcat版本(7.0.65)

漏洞复现

修改web.xml文件, 开启http的put方法(文件路径: tomcat\conf\web.xml):

修改完,重新启动tomcat,访问8080端口

用burp抓包, 拦截将GET改为PUT方法,尝试直接上传test.jsp文件:

上传失败返回404
原因: Tomcat在某种程度上检查了文件后缀(无法直接编写jsp)

利用文件上传绕过方式进行绕过
方式一: 利用Windows文件流(::DATA)绕过

返回409

响应状态码 409 Conflict 表示请求与服务器端目标资源的当前状态相冲突。

冲突最有可能发生在对 PUT 请求的响应中。例如,当上传文件的版本比服务器上已存在的要旧,从而导致版本冲突的时候,那么就有可能收到状态码为 409 的响应。

愿因: 这儿应该是版本冲突(猜测), 这个方式应该是可行的,参考时以实践结果为标准

方式二: 直接在上传文件后缀名后加/绕过(Tomcat存在去掉最后/的特性,此方法影响所有的Apache Tomcat 版本

返回201, 成功创建文件,访问文件,成功访问(这里可上传一句话木马)

方式三: 在上传文件后缀名后加上%20绕过

修复方案:

1.配置readonly为true(默认为true)
2.根据官方补丁升级最新版本


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM