通过 PUT 方法的 Tomcat 任意写入文件漏洞 (CVE-2017-12615)
Tomcat版本:8.5.19
参考链接:
- http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0107097.html
- https://mp.weixin.qq.com/s?__biz=MzI1NDg4MTIxMw==&mid=2247483659&idx=1&sn=c23b3a3b3b43d70999bdbe644e79f7e5
- https://mp.weixin.qq.com/s?__biz=MzU3ODAyMjg4OQ==&mid=2247483805&idx=1&sn=503a3e29165d57d3c20ced671761bb5e
漏洞复现
成功运行上述命令后,访问该站点即可看到 Tomcat 的示例页面http://192.168.44.132:8080
。
Tomcat设置了写权限(readonly=false),导致我们可以将文件写入服务器。
1 | <servlet> |
虽然Tomcat在一定程度上检查了文件后缀(不能直接写jsp),但是我们还是可以通过一些文件系统的特性(比如/
在Linux中使用)来绕过这个限制。
直接发送以下数据包,然后将shell写入Web根目录。
1 | PUT /1.jsp/ HTTP/1.1 |
如下: