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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
jwt_tool — :snake: JSON Web Tokens के परीक्षण, समायोजन और क्रैकिंग के लिए एक टूलकिट | Kitploit
उपकरण/GitHubGitHub/ticarpi/jwt_tool
भेद्यता स्कैनरवेब सुरक्षाफज़िंगक्रिप्टोग्राफीCTFपेनिट्रेशन टेस्टिंग
GitHubticarpi/jwt_tool

jwt_tool

🐍 JSON Web Tokens के परीक्षण, समायोजन और क्रैकिंग के लिए एक टूलकिट

रिपॉजिटरी देखें
6.7k8121 साल पहलेKitploit द्वारा समीक्षित

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

सभी देखें →

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

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

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

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

JSON Web Token Toolkit v2

jwt_tool.py JWT (JSON Web Tokens) को मान्य करने, जाली बनाने, स्कैन करने और छेड़छाड़ करने के लिए एक टूलकिट है।

jwt_tool version python version

logo

इसकी कार्यक्षमता में शामिल हैं:

  • टोकन की वैधता की जाँच करना
  • ज्ञात एक्सप्लॉइट्स के लिए परीक्षण करना:
    • (CVE-2015-2951) alg=none सिग्नेचर-बायपास भेद्यता
    • (CVE-2016-10555) RS/HS256 पब्लिक की मिसमैच भेद्यता
    • (CVE-2018-0114) Key injection भेद्यता
    • (CVE-2019-20933/CVE-2020-28637) Blank password भेद्यता
    • (CVE-2020-28042) Null signature भेद्यता
    • (CVE-2022-21449) Psychic Signature ECDSA भेद्यता
  • गलत कॉन्फ़िगरेशन या ज्ञात कमजोरियों के लिए स्कैन करना
  • अप्रत्याशित व्यवहार भड़काने के लिए claim मानों का फज़िंग करना
  • किसी secret/key फ़ाइल/Public Key/JWKS key की वैधता का परीक्षण करना
  • हाई-स्पीड Dictionary Attack के माध्यम से weak keys की पहचान करना
  • नए टोकन हेडर और payload सामग्री को जाली बनाना और key के साथ या किसी अन्य हमले की विधि द्वारा नया सिग्नेचर बनाना
  • Timestamp में छेड़छाड़
  • RSA और ECDSA key निर्माण, और पुनर्निर्माण (JWKS फ़ाइलों से)
  • सभी हमलों के लिए Rate-limiting
  • ...और भी बहुत कुछ!

Audience

यह टूल pentesters के लिए लिखा गया है, जिन्हें उपयोग में आने वाले टोकन की मजबूती और ज्ञात हमलों के प्रति उनकी संवेदनशीलता की जाँच करने की आवश्यकता होती है। कुछ JWT लाइब्रेरियों में मौजूद संभावित कमजोरियों की गहराई से जाँच करने में मदद के लिए छेड़छाड़, साइनिंग और सत्यापन के कई विकल्प उपलब्ध हैं।
यह CTF चैलेंजर्स के लिए भी सफल रहा है - क्योंकि CTFs फिलहाल JWTs में रुचि रखते हैं।
यह डेवलपर्स के लिए भी उपयोगी हो सकता है जो परियोजनाओं में JWTs का उपयोग कर रहे हैं, लेकिन जाली टोकन का उपयोग करते समय स्थिरता और ज्ञात भेद्यताओं के लिए परीक्षण करना चाहते हैं।


Requirements

यह टूल मूल रूप से Python 3 (संस्करण 3.6+) में सामान्य लाइब्रेरियों का उपयोग करके लिखा गया है, हालाँकि विभिन्न क्रिप्टोग्राफ़िक फ़ंक्शन (और सामान्य सुंदरता/पठनीयता) के लिए कुछ सामान्य Python लाइब्रेरियों की स्थापना की आवश्यकता होती है।
(इस टूल का एक पुराना Python 2.x संस्करण उन लोगों के लिए legacy branch पर उपलब्ध है जिन्हें इसकी आवश्यकता है, हालाँकि इसे अब समर्थित या अद्यतन नहीं किया जाएगा)


Installation

Docker

jwt_tool के लिए पसंदीदा उपयोग official Dockerhub-hosted jwt_tool docker image के साथ है।
इसे चलाने के लिए आधार कमांड इस प्रकार है:
jwt_tool चलाने के लिए आधार कमांड:
docker run -it --network "host" --rm -v "${PWD}:/tmp" -v "${HOME}/.jwt_tool:/root/.jwt_tool" ticarpi/jwt_tool

उपरोक्त कमांड का उपयोग करके आप सामान्य रूप से किसी भी अन्य तर्क को जोड़ सकते हैं।
ध्यान दें कि आपकी वर्तमान कार्यशील निर्देशिका में स्थानीय फ़ाइलें डॉकर कंटेनर की /tmp निर्देशिका में मैप की जाएंगी, इसलिए आप उन्हें अपने तर्कों में उस निरपेक्ष पथ का उपयोग करके उपयोग कर सकते हैं।
यानी
/tmp/localfile.txt

Manual Install

स्थापना केवल jwt_tool.py फ़ाइल डाउनलोड करने (या git clone रेपो) जैसी है।
(यदि आप इसे अपने $PATH में जोड़ना चाहते हैं और कहीं से भी कॉल करना चाहते हैं तो फ़ाइल को chmod भी करें।)

$ git clone https://github.com/ticarpi/jwt_tool
$ python3 -m pip install -r requirements.txt

पहली बार चलाने पर टूल एक कॉन्फ़िग फ़ाइल, कुछ उपयोगिता फ़ाइलें, लॉगफ़ाइल, और विभिन्न प्रारूपों में Public और Private keys का एक सेट उत्पन्न करेगा।

Custom Configs

  • स्कैनिंग विकल्पों का सर्वोत्तम उपयोग करने के लिए दृढ़ता से सलाह दी जाती है कि कस्टम-जनरेट की गई JWKS फ़ाइल को किसी ऐसे स्थान पर कॉपी करें जहाँ URL के माध्यम से दूरस्थ रूप से एक्सेस किया जा सके। इस पते को फिर jwtconf.ini में "jwkloc" मान के रूप में संग्रहीत किया जाना चाहिए।
  • DNS लुकअप और HTTP अनुरोधों जैसी बाहरी सेवा इंटरैक्शन को कैप्चर करने के लिए, Burp Collaborator (या RequestBin जैसे अन्य वैकल्पिक टूल) के लिए अपना अद्वितीय पता कॉन्फ़िग फ़ाइल में "httplistener" मान के रूप में डालें।
    अपने अनुभव को अनुकूलित करने के लिए कॉन्फ़िग फ़ाइल में अन्य विकल्पों की समीक्षा करें।

Colour bug in Windows

Windows cmd/Powershell में टूटे हुए रंगों को ठीक करने के लिए: jwt_tool.py में नीचे दी गई दो पंक्तियों को अनकम्मेंट करें (प्रत्येक पंक्ति की शुरुआत से "# " हटाएँ)
आपको colorama भी स्थापित करना होगा: python3 -m pip install colorama

root@kitploit:~
# import colorama
# colorama.init()

Usage

पहला तर्क स्वयं JWT होना चाहिए (जब तक कि इसे हेडर या कुकी मान में प्रदान न किया गया हो)। कोई अतिरिक्त तर्क प्रदान न करने पर समीक्षा के लिए डिकोड किए गए टोकन मान दिखाई देंगे।
$ python3 jwt_tool.py <JWT>
या Docker आधार कमांड:
$ docker run -it --network "host" --rm -v "${PWD}:/tmp" -v "${HOME}/.jwt_tool:/root/.jwt_tool" ticarpi/jwt_tool

टूलकिट टोकन को मान्य करेगा और हेडर और payload मानों को सूचीबद्ध करेगा।

Additional arguments

कई अतिरिक्त तर्क आपको सीधे उपयुक्त फ़ंक्शन पर ले जाएंगे और आपको आपके परीक्षणों में उपयोग के लिए तैयार टोकन लौटाएंगे।
उदाहरण के लिए, मौजूदा टोकन के साथ छेड़छाड़ करने के लिए निम्नलिखित चलाएँ:
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -T

कई विकल्पों को विकल्प सेट करने के लिए अतिरिक्त मानों की आवश्यकता होती है।
उदाहरण के लिए, एक विशेष प्रकार का एक्सप्लॉइट चलाने के लिए आपको eXploit (-X) विकल्प चुनना होगा और भेद्यता का चयन करना होगा (यहाँ alg:none एक्सप्लॉइट के लिए "a" का उपयोग करते हुए):
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -X a

Extra parameters

टोकन सत्यापित करने जैसे कुछ विकल्पों के लिए अतिरिक्त पैरामीटर/फ़ाइलें प्रदान करने की आवश्यकता होती है (यहाँ PEM प्रारूप में Public Key प्रदान करते हुए):
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -V -pk public.pem

Sending tokens to a web application

सभी मोड अब टोकन को सीधे किसी एप्लिकेशन पर भेजने की अनुमति देते हैं।
आपको निर्दिष्ट करने की आवश्यकता है:

  • target URL (-t)
  • target URL के बजाय, आप अपना HTTP अनुरोध एक फ़ाइल में डाल सकते हैं और -r के साथ फ़ाइल का संदर्भ दे सकते हैं। यह स्वचालित रूप से हेडर, कुकीज़ और POST डेटा भर देता है इसलिए यह अनुशंसित विकल्प है
  • एक request header (-rh) या request cookies (-rc) जो एप्लिकेशन के लिए आवश्यक हैं (कम से कम एक में टोकन होना चाहिए)
  • (वैकल्पिक) कोई भी POST डेटा (जहाँ अनुरोध POST है)
  • (वैकल्पिक) कोई भी अतिरिक्त jwt_tool विकल्प, जैसे मोड या छेड़छाड़/इंजेक्शन विकल्प
  • (वैकल्पिक) एक canary value (-cv) - एक टेक्स्ट मान जिसे आप टोकन के सफल उपयोग में देखने की उम्मीद करते हैं (जैसे "Welcome, ticarpi")
    एक उदाहरण अनुरोध इस तरह दिख सकता है (forced-errors के लिए स्कैनिंग मोड का उपयोग करते हुए):
    $ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -rh "Origin: null" -cv "Welcome" -M er

अनुरोध से विभिन्न प्रतिक्रियाएँ प्रदर्शित होती हैं:

  • Response code
  • Response size
  • Unique request tracking ID (लॉगिंग के लिए उपयोग)
  • Mode/options used

Common Workflow

यहाँ JWT कार्यान्वयन के बुनियादी मूल्यांकन का एक त्वरित रन-थ्रू है। यदि इन विकल्पों से कोई सफलता नहीं मिलती है तो नई भेद्यताओं (या zero-days!) की खोज के लिए अन्य मोड और विकल्पों में गहराई से जाएँ।

Recon:

एप्लिकेशन में अपेक्षित claims/मानों का अंदाजा लगाने के लिए टोकन मान पढ़ें:
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw

Scanning:

सामान्य गलत कॉन्फ़िगरेशन की खोज के लिए प्रदान किए गए टोकन को सीधे एप्लिकेशन के विरुद्ध एक Playbook Scan चलाएँ:
$ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -M pb

Exploitation:

यदि कोई सफल भेद्यता पाई जाती है तो उसका शोषण करने का प्रयास करने के लिए किसी भी प्रासंगिक claim को बदलें (यहाँ Inject JWKS एक्सप्लॉइट का उपयोग करके और एक नया उपयोगकर्ता नाम इंजेक्ट करते हुए):
$ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -X i -I -pc name -pv admin

Fuzzing:

अप्रत्याशित मानों और claims का परीक्षण करके अप्रत्याशित ऐप व्यवहारों की पहचान करने के लिए गहराई से जाँच करें, या प्रोग्रामिंग लॉजिक या टोकन प्रोसेसिंग पर हमले चलाएँ:
$ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -I -hc kid -hv custom_sqli_vectors.txt

Review:

अनुरोध और : के बारे में अधिक डेटा पढ़ने के लिए लॉग को क्वेरी करके किसी भी सफल शोषण की समीक्षा करें:
$ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -X i -I -pc name -pv admin


Help

विकल्पों की सूची के लिए usage फ़ंक्शन को कॉल करें: टोकन सत्यापित करने जैसे कुछ विकल्पों के लिए अतिरिक्त पैरामीटर/फ़ाइलें प्रदान करने की आवश्यकता होती है:
$ python3 jwt_tool.py -h

अधिक विस्तृत उपयोगकर्ता मार्गदर्शिका wiki पृष्ठ पर पाई जा सकती है।


JWT Attack Playbook - new wiki content!

playbook_logo

इस बारे में विस्तृत जानकारी के लिए JWT Attack Playbook पर जाएँ कि JWT क्या हैं, वे क्या करते हैं, और भेद्यताओं, सामान्य कमजोरियों और अनपेक्षित कोडिंग त्रुटियों के लिए उनका पूरी तरह से परीक्षण करने का एक पूर्ण कार्यप्रवाह।


Tips

Burp Search में JWTs खोजने के लिए Regex
(सुनिश्चित करें कि 'Case sensitive' और 'Regex' विकल्प चयनित हैं)
[= ]eyJ[A-Za-z0-9_-]*\.[A-Za-z0-9._-]* - url-safe JWT संस्करण
[= ]eyJ[A-Za-z0-9_\/+-]*\.[A-Za-z0-9._\/+-]* - सभी JWT संस्करण (गलत सकारात्मक की अधिक संभावना)


Further Reading

  • JWT Attack Playbook (https://github.com/ticarpi/jwt_tool/wiki) - संपूर्ण JWT परीक्षण पद्धति के लिए

  • JWTs का एक बेहतरीन परिचय - https://jwt.io/introduction/

  • इस टूल के लिए बहुत सारी प्रारंभिक प्रेरणा Tim McLean द्वारा खोजी गई भेद्यताओं से आती है।
    JWT कमजोरियों पर उनका ब्लॉग यहाँ देखें: https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/

  • JWT भेद्यताओं के परीक्षण के लिए बहुत सारे अभ्यास Pentesterlab (https://www.pentesterlab.com) द्वारा प्रदान किए जाते हैं। यदि आप Web App Pentesting में रुचि रखते हैं तो मैं PRO सदस्यता की अत्यधिक अनुशंसा करूँगा।

    कृपया ध्यान दें: यह टूलकिट अधिकांश Pentesterlab JWT अभ्यासों को सही ढंग से उपयोग करने पर कुछ सेकंड में हल कर देगा, हालाँकि मैं दृढ़ता से आपको प्रोत्साहित करता हूँ कि इन अभ्यासों को स्वयं पूरा करें, संरचना और कमजोरियों को समझें। आखिरकार, यह सब सीखने के बारे में है...

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