CVE-2017-12615 Apache Tomcat任意文件上传漏洞
罗兰心
2022年03月01日 16:26
收录于文集
共5篇

1.先进入靶机环境

进入目录,docker打开环境

2.查看web页面,准备抓包

3.bp抓包,然后修改

get方法改成put,根路径下添加文件名,后面增加exp数据

之前状态码为400,未上传成功,发现路径写错了,修改后上传成功

4.发送完成,服务器上已经存在上传文件,前去查看一下

第一次上传,因为路径写错,没有上传成功,后面修改后长传成功可以查看到文件

5.因为我用的是反弹shell,所以先开nc,然后访问页面

虽然页面没有内容但是看shell已经反弹成功

6.加油不同系统所用的上传方式不一样,总体上有如下三种

shell.jsp%20 shell.jsp::$DATA shell.jsp/

7.使用知识点

a.Tomcat将readonly设置为false的同时也开启了对PUT请求方式的支持

b.org.apache.jasper.servlet.JspServlet:默认处理jsp,jspx文件请求,不存在PUT上传逻辑,无法处理PUT请求

org.apache.catalina.servlets.DefaultServlet:默认处理静态文件(除jsp,jspx之外的文件),存在PUT上传处理逻辑,可以处理PUT请求。

c.所以我们即使可以PUT一个文件到服务器但也无法直接PUT以jsp,jspx结尾文件,因为这些这些后缀的文件都是交由JspServlet处理的,它没法处理PUT请求。

d.当使用第6点中的三个方法来上传文件,那tomcat并不认为其是jsp文件从而交由DefaultServlet处理,从而成功创建jsp文件,这也就是所谓的CVE-2017-12615漏洞。

ps:可以用msf里面自带的exp直接打,还有searchsploit中查到的py脚本来用。

借鉴颇多:

https://www.cnblogs.com/rnss/p/13384127.html