Tomcat PUT方法任意写文件漏洞(CVE-2017-12615)

漏洞信息

  • 影响版本:Apache Tomcat 7.0.0 - 7.0.81
  • 漏洞原理:漏洞的产生是由于配置不当(非默认配置),将配置文件(
    conf/web.xml)中的readonly设置为了false,导致可以使用PUT方法上传任意文件,但限制了jsp后缀,不过对于不同平台有多种绕过方法

复现

用vulhub提供的docker搭建好环境
浏览器访问web页面并用burp抓包,然后修改为PUT方式提交

可见已经成功上传文件

但是直接上传jsp文件是不被允许的

对于这种情况可以有多种方式绕过

  • Windows下不允许文件以空格结尾
    以PUT /x.jsp%20 HTTP/1.1上传到windows会被自动去掉末尾空格
  • WindowsNTFS流
    PUT /x.jsp::$DATA HTTP/1.1
  • /在文件名中是非法的,也会被去除(Linux/Windows)
    PUT /x.jsp/ HTTP/1.1

测试上传

然后上传cknife的jsp马,用其连接

参考:
Tomcat代码执行漏洞分析测试(附POC)
NTFS Streams

posted @ 2019-01-15 09:57  淚笑  阅读(6817)  评论(0)    收藏  举报