一、漏洞介绍
2017年9月19日,Apache Tomcat官方确认并修复了两个高危漏洞,漏洞CVE编号:CVE-2017-12615和CVE-2017-12616,其中远程代码执行漏洞(CVE-2017-12615)。一定条件下,攻击者可以利用该漏洞,通过上传的jsp文件,在服务器上执行任意代码,导致数据泄露或权限被获取,存在高安全风险。
二、复现环境
vulhub的tomcat环境,burpsuite抓包工具
三、漏洞复现
启动vulhub,开启tomcat环境
![](https://img-blog.csdnimg.cn/img_convert/5fe32edbba526f66d9b0c0235f01ba52.png)
使用burpsuite进行抓包
![](https://img-blog.csdnimg.cn/img_convert/44ba38959d5399ce6ee26e519c3dd481.png)
![](https://img-blog.csdnimg.cn/img_convert/4ea049e97c87a3ca4d2ae940a0d32871.png)
将GET改为OPTIONS,405错误响应
![](https://img-blog.csdnimg.cn/img_convert/17b0a991e7a2f2d639df15eb7b512871.png)
改为PUY,并上传shell.jsp文件,返回201成功响应
![](https://img-blog.csdnimg.cn/img_convert/0c7d7e7572b812ceaad3db8bc5a2e410.png)
将tomcat放行,发现文件已经上传成功
![](https://img-blog.csdnimg.cn/img_convert/9cb4187a6ca25598873894f3d6d95f11.png)
3.使用webshell管理工具尝试连接
![](https://img-blog.csdnimg.cn/img_convert/a737e5d1898f39f3c0603d5f3d4c44f0.png)
成功连接
四、影响版本
Apache Tomcat 7.0.0 - 7.0.81
五、原因分析
由于Tomcat的配置不当导致漏洞产生,将配置文件conf/web.xml中的readonly值设为false,导致可以使用PUT方法上传文件,获取服务器权限或导致服务器数据泄露。
六、漏洞修复
配置readonly值为True或注释参数,禁止使用PUT方法并重启tomcat。
可以在前端上阻止PUT和DELETE请求。