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

Class MemShellCheck

JettyMemShell/src/main/java/test/MemShellCheck.java:16–296  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

14import java.util.*;
15
16public class MemShellCheck implements Filter {
17
18 private static Integer count=0;
19
20 @Override
21 public void init(FilterConfig filterConfig) throws ServletException {
22
23 }
24
25 @Override
26 public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
27 HttpServletRequest req = (HttpServletRequest) servletRequest;
28 HttpServletResponse resp = (HttpServletResponse) servletResponse;
29
30 resp.setCharacterEncoding("UTF-8");
31 resp.setHeader("Content-type", "text/plain;charset=UTF-8");
32 String id = req.getParameter("id");
33 String action=req.getParameter("action");
34 try {
35 Object context=getContext(); //WebAppContext
36 if(action.equals("scan")){
37 /**
38 * Listener
39 */
40 resp.getWriter().println("/**\n" + "* Listener\n" + "*/\n");
41 List<Object> listeners=(List<Object>)getFV(context,"_eventListeners");
42 if (listeners != null || listeners.size() != 0) {
43 List<ServletRequestListener> newListeners = new ArrayList<>();
44 for (Object o : listeners) {
45 if (o instanceof ServletRequestListener) {
46 newListeners.add((ServletRequestListener) o);
47 }
48 }
49 String listenerTName=null;
50 for (ServletRequestListener listener : newListeners) {
51 listenerTName=listener.getClass().getName();
52 int idw=IDGenerate();
53 resp.getWriter().println(Template(idw,listener.hashCode(),null,null,listenerTName,listener.getClass().getClassLoader().getClass().getName(),listener.getClass()));
54 HashMap<String, Object> memShellInfo=CheckStruct.newMemShellInfo(null,null,listenerTName,listener.getClass().getClassLoader().getClass().getName(),listener.getClass(),"Listener");
55 CheckStruct.set(listener.hashCode(),memShellInfo);
56 }
57 }
58
59
60 /**
61 * Filter
62 */
63 resp.getWriter().println("/**\n" + "* Filter\n" + "*/\n");
64
65 Field f1=context.getClass().getSuperclass().getDeclaredField("_servletHandler");
66 f1.setAccessible(true);
67 Object ServletHandler=f1.get(context);
68 Field f2=ServletHandler.getClass().getDeclaredField("_filterMappings");
69 f2.setAccessible(true);
70 Object filtermapping = f2.get(ServletHandler);
71 Object[] filtermappings = new Object[Array.getLength(filtermapping)];
72
73 for(int var8 = 0; var8 < Array.getLength(filtermapping); ++var8) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected