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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2023-48223 — fast-jwt लाइब्रेरी में JWT एल्गोरिथम भ्रम प्रदर्शित करने वाला प्रूफ-ऑफ-कॉन्सेप्ट। सुरक्षा शिक्षा के लिए कमजोर सर्वर, टोकन जालसाजी स्क्रिप्ट और सत्यापन सुधार शामिल है। | Kitploit
उपकरण/GitHubGitHub/lucastran05/cve-2023-48223
भेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणपेनिट्रेशन टेस्टिंगलर्निंग और शिक्षालैब और अभ्यास
GitHublucastran05/cve-2023-48223

CVE-2023-48223

fast-jwt लाइब्रेरी में JWT एल्गोरिथम भ्रम प्रदर्शित करने वाला प्रूफ-ऑफ-कॉन्सेप्ट। सुरक्षा शिक्षा के लिए कमजोर सर्वर, टोकन जालसाजी स्क्रिप्ट और सत्यापन सुधार शामिल है।

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

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

सभी देखें →

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

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

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

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

CVE-2023-48223 PoC (fast-jwt Algorithm Confusion)

इस रिपॉजिटरी में fast-jwt में JWT algorithm confusion को दर्शाया गया है जब token verification allowed algorithms को lock नहीं करता।

Environment Setup

Requirements

  • Node.js 18 या उससे नया
  • npm
  • OpenSSL (आपके terminal PATH में उपलब्ध होना चाहिए)

1) Install dependencies

प्रोजेक्ट रूट से निम्न चलाएँ:

npm install

2) Generate RSA keys

ऐप इन फाइलों की अपेक्षा करता है:

  • keys/private.pem
  • keys/public.pem

निम्न command sets में से एक चलाएँ।

PowerShell (Windows):

New-Item -ItemType Directory -Path keys -Force | Out-Null
openssl genrsa -out keys/private.pem 2048
openssl rsa -in keys/private.pem -RSAPublicKey_out -out keys/public.pem

Linux/macOS/Git Bash:

mkdir -p keys
openssl genrsa -out keys/private.pem 2048
openssl rsa -in keys/private.pem -RSAPublicKey_out -out keys/public.pem

3) Start the server

node server.js

अपेक्षित आउटपुट:

Server running at http://localhost:3000

Quick Run (PoC Flow)

1) Get a normal token

curl http://localhost:3000/generateToken

2) Forge an admin token

node sign.js

Printed token को कॉपी करें।

3) Call the admin endpoint with the forged token

node checkAdmin.js <JWT_TOKEN>

अगर हमला सफल होता है, तो प्रतिक्रिया में Welcome Admin! शामिल होता है।

Why This Is Vulnerable

server.js में, verifier algorithms को प्रतिबंधित नहीं करता:

const verifySync = createVerifier({
  key: publicKey,
});

Algorithm allowlist के बिना, सर्वर public key को HMAC secret के रूप में उपयोग करके हस्ताक्षरित एक malicious HS256 token स्वीकार कर सकता है।

Vulnerable Library Simulation Explanation (for the report)

हमारे CVE demos में, vulnerable object library है (अकेले नहीं चल सकती)। इसलिए एक simulated app की आवश्यकता होती है जो यह अनुकरण करे कि वास्तविक सिस्टम library के API को कैसे कॉल करता है। इस रिपॉजिटरी में, server.js simulated application layer है।

  • Endpoint /generateToken: यह route fast-jwt के createSigner को RS256 के साथ कॉल करके normal user (admin=false) के लिए valid token बनाता है। उद्देश्य forged token की तुलना के लिए "normal" baseline token बनाना है।
  • Endpoint /admin: यह route Bearer token प्राप्त करता है, फिर fast-jwt से createVerifier को कॉल करके token verify करता है और payload.admin के अनुसार admin access तय करता है। जानबूझकर vulnerable बिंदु यह है कि verifier algorithms को lock नहीं करता, जिसके परिणामस्वरूप algorithm confusion होती है।

Supporting PoC code flow:

  • sign.js: attacker का अनुकरण करता है जो HS256 के साथ createSigner को कॉल करता है और public key को secret के रूप में उपयोग करके forged token (admin=true) पर हस्ताक्षर करता है।
  • checkAdmin.js: /admin को forged token के साथ request भेजता है ताकि यह साबित किया जा सके कि server vulnerable configuration में forged token स्वीकार करता है।

संक्षेप में, हमने library के functions को rewrite नहीं किया। हमने केवल vulnerable library के original APIs (createSigner, createVerifier) को simulated app के अंदर उपयोग किया ताकि exploit स्थिति को सटीक रूप से reproduce किया जा सके।

Fix

Verification को RS256 तक सीमित करें:

const verifySync = createVerifier({
  key: publicKey,
  algorithms: ["RS256"],
});

Safety Note

यह प्रोजेक्ट केवल नियंत्रित प्रयोगशाला वातावरण में सुरक्षा सीखने के लिए है।

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