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

Method doFilter

JettyMemShell/src/main/java/test/MemShellCheck.java:25–160  ·  view source on GitHub ↗
(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)

Source from the content-addressed store, hash-verified

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) {
74 Object fm = Array.get(filtermapping, var8);
75 Field f3 = fm.getClass().getDeclaredField("_filterName");
76 f3.setAccessible(true);
77 String filterName= (String) f3.get(fm);
78
79 Field f4 = fm.getClass().getDeclaredField("_pathSpecs");
80 f4.setAccessible(true);
81 String[] urlpatterns= (String[]) f4.get(fm);
82

Callers

nothing calls this directly

Calls 8

getContextMethod · 0.95
getFVMethod · 0.95
IDGenerateMethod · 0.95
TemplateMethod · 0.95
newMemShellInfoMethod · 0.95
setMethod · 0.95
getMethod · 0.95
arrayToStringMethod · 0.95

Tested by

no test coverage detected