17.[CVE-2017-12615]Tomcat任意文件上传漏洞
【CVE-2017-12615】 Tomcat任意文件上传漏洞
首先先贴出wooyun上的一个案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0107097.html
看到这个漏洞让我想到了IIS6.0任意文件上传的漏洞,不过现在大多都用工具,比如IIS put scan...
这里贴出IIS6.0任意文件上传案例:https://blog.csdn.net/qq_42357070/article/details/82183988
能文件上传,大多都是权限过滤不严....
漏洞分析:
我们来分析tomcat这个漏洞,需要首先允许tomcat进行PUT操作,问题也就在 /conf/web.xml:
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>readonly</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
重点是readonly的那一项,因为其他的都是默认的,只有那个是自己添加的。
我们来看一下readonly这个选项是用来做什么的吧:
也是在这个web.xml文件中,已经注释的地方说明了默认情况下readonly是true,并且如果
是true的话,那么PUT和DELETE方法是被拒绝的,因此如果手动将readonly选项开启为false,
那么就能够通过PUT方法上传文件了。
漏洞复现:
我们开启tomcat漏洞环境,本次还是使用docker来搭建环境,开启环境:
使用burpsuite抓包,发送构造的的webshell:
当我们发送上图构造好的jsp马时发现爆出405错误,当我们重新构造:
PUT /joker.jsp 与 PUT /joker.jsp/ 一个成功一个失败 查阅资料发现,原来default servlet只能处理静态文件,而处理jsp文件是jspservlet,但是只有defaultservlet 有PUT上传逻辑,解决的办法是通过构造特殊的后缀名来进行绕过,从而上传jsp木马。 经过验证,可以在文件名后面添加斜杠 / 或者 %20来进行绕过,应为在windows下,%20(空格)和 / 都是不合法文件名。都会被去掉
我们尝试访问上传上去的jsp马:
可以看到木马被正常访问!
为了方便。一般情况下我们直接使用EXP快速利用。在这里贴上Bearcat师傅的CVE-2017-12615的EXP下载地址:
https://github.com/iBearcat/CVE-2017-12615
修复方案:
1、配置readonly和VirtualDirContext值为True或注释参数,禁止使用PUT方法并重启tomcat
注意:如果禁用PUT方法,对于依赖PUT方法的应用,可能导致业务失效。
2、根据官方补丁升级最新版本
17.[CVE-2017-12615]Tomcat任意文件上传漏洞的更多相关文章
- Tomcat任意文件上传漏洞CVE-2017-12615
文章来源:https://blog.csdn.net/qq1124794084/article/details/78044756 漏洞影响的tomcat版本为tomcat7.0.0-7.0.81版本 ...
- WordPress Contact Form 7插件任意文件上传漏洞
漏洞名称: WordPress Contact Form 7插件任意文件上传漏洞 CNNVD编号: CNNVD-201311-415 发布时间: 2013-11-28 更新时间: 2013-11-28 ...
- WordPress Suco Themes ‘themify-ajax.php’任意文件上传漏洞
漏洞名称: WordPress Suco Themes ‘themify-ajax.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-403 发布时间: 2013-11-28 更新 ...
- WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞
漏洞名称: WordPress Kernel Theme ‘upload-handler.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-127 发布时间: 2013-11-12 ...
- WordPress Think Responsive Themes ‘upload_settings_image.php’任意文件上传漏洞
漏洞名称: WordPress Think Responsive Themes ‘upload_settings_image.php’任意文件上传漏洞 CNNVD编号: CNNVD-201311-06 ...
- WordPress Checkout插件跨站脚本漏洞和任意文件上传漏洞
漏洞名称: WordPress Checkout插件跨站脚本漏洞和任意文件上传漏洞 CNNVD编号: CNNVD-201311-015 发布时间: 2013-11-04 更新时间: 2013-11-0 ...
- WordPress Lazy SEO插件lazyseo.php脚本任意文件上传漏洞
漏洞名称: WordPress Lazy SEO插件lazyseo.php脚本任意文件上传漏洞 CNNVD编号: CNNVD-201309-446 发布时间: 2013-09-26 更新时间: 201 ...
- WordPress Complete Gallery Manager插件‘upload-images.php’任意文件上传漏洞
漏洞名称: WordPress Complete Gallery Manager插件‘upload-images.php’任意文件上传漏洞 CNNVD编号: CNNVD-201309-377 发布时间 ...
- WordPress NextGEN Gallery ‘upload.php’任意文件上传漏洞
漏洞名称: WordPress NextGEN Gallery ‘upload.php’任意文件上传漏洞 CNNVD编号: CNNVD-201306-259 发布时间: 2013-06-20 更新时间 ...
随机推荐
- delphi函数返回多个值的应用
方法1: function test(var a,b,c:integer):integer; begin end; 方法2: type info = record name:string; age : ...
- cocos2dx 中 string 转json
string jsonData = warriors.toStyledString().c_str(); Json::Value parseData; Json::Reader reader; rea ...
- spring学习(2)
理解反向控制(IOC) 依赖注入(di):比IOC更好地名字.获得依赖对象的方式反转了. IOC应用 IOC或者di,还可以达到解耦的目的. spring开发提倡接口编程,配合di技术,可以更好地达到 ...
- python基础-条件语句if
if语句: if 判断条件: 执行语句 else: 执行语句 flag = Falsename = 'huipaodexiong'if name == 'python': flag = True ...
- 一篇 jQuery 常用方法及函数的文章留存备忘。
jQuery 常见操作实现方式 $("标签名") //取html元素 document.getElementsByTagName("") $("#ID ...
- Android中高效的显示图片之三——缓存图片
加载一张图片到UI相对比较简单,如果一次要加载一组图片,就会变得麻烦很多.像ListView,GridView,ViewPager等控件,需要显示的图片和将要显示的图片数量可能会很大. 为了减少内存使 ...
- error: ‘errno’ was not declared in this scope
问题: 将一个c文件改为cpp文件,其中的perror()改用C++中的std::cerr << strerror(error) << std::endl;来替换. 重新编译文 ...
- S3C2410中文芯片手册-11.串口
目录 11 UART Overview Featrues UART Operation Data Transmission Data Reception Auto Flow Control(AFC) ...
- BZOJ2548:[CTSC2002]灭鼠行动
我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...
- Poj 2853,2140 Sequence Sum Possibilities(因式分解)
一.Description Most positive integers may be written as a sum of a sequence of at least two consecuti ...