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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-3456-OAuth2-PKCE-Race-Condition-Account-Takeover- — CVE-2026-3456 के लिए Python PoC जो OAuth2 PKCE रेस-कंडीशन अकाउंट टेकओवर को प्रदर्शित करता है, साथ ही एक कमजोर ऑथ सर्वर और कंकरंट कोड-वेरिफायर एक्सप्लॉइट स्क्रिप्ट के साथ। | Kitploit
उपकरण/GitHubGitHub/george0papasotiriou/cve-2026-3456-oauth2-pkce-race-condition-account-takeover-
प्रमाणीकरण और प्राधिकरणभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षाAPI सुरक्षा
GitHubgeorge0papasotiriou/cve-2026-3456-oauth2-pkce-race-condition-account-takeover-

CVE-2026-3456-OAuth2-PKCE-Race-Condition-Account-Takeover-

CVE-2026-3456 के लिए Python PoC जो OAuth2 PKCE रेस-कंडीशन अकाउंट टेकओवर को प्रदर्शित करता है, साथ ही एक कमजोर ऑथ सर्वर और कंकरंट कोड-वेरिफायर एक्सप्लॉइट स्क्रिप्ट के साथ।

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

सभी देखें →

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

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

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

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

8. CVE-2026-3456 – OAuth2 PKCE रेस कंडीशन (खाता अधिग्रहण)

अवलोकन

OAuth2 प्राधिकरण सर्वर में एक रेस कंडीशन हमलावर को, एक छोटी समय-खिड़की के भीतर PKCE code_verifier का अनुमान लगाकर या ब्रूट-फोर्स करके, वैध क्लाइंट द्वारा उसे भुनाने से पहले पीड़ित के प्राधिकरण कोड का पुनः उपयोग करने की अनुमति देता है।

गंभीरता: उच्च (खाता अधिग्रहण)

सिमुलेशन (Python HTTP सर्वर)

root@kitploit:~
#!/usr/bin/env python3
"""
vulnerable_auth_server.py - Authorization server with race condition window.
"""
import time, random, hashlib, base64, secrets
from http.server import HTTPServer, BaseHTTPRequestHandler
import urllib.parse

# Simulated storage
auth_codes = {}  # code -> {client_id, redirect_uri, code_challenge, scope, user}
tokens = {}

def generate_code():
    return secrets.token_urlsafe(16)

class AuthHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        parsed = urllib.parse.urlparse(self.path)
        params = urllib.parse.parse_qs(parsed.query)
        if parsed.path == '/authorize':
            # User approves, redirect with code
            code = generate_code()
            auth_codes[code] = {
                'client_id': params.get('client_id', ['unknown'])[0],
                'redirect_uri': params.get('redirect_uri', [''])[0],
                'code_challenge': params.get('code_challenge', [''])[0],
                'user': '[email protected]'
            }
            redirect = f"{params['redirect_uri'][0]}?code={code}&state={params.get('state',[''])[0]}"
            self.send_response(302)
            self.send_header('Location', redirect)
            self.end_headers()
        elif parsed.path == '/token':
            # Token endpoint (POST) but simplified as GET for demo
            code = params.get('code', [''])[0]
            verifier = params.get('code_verifier', [''])[0]
            if code in auth_codes:
                entry = auth_codes[code]
                # Check PKCE: SHA256(verifier) == challenge?
                challenge = base64.urlsafe_b64encode(hashlib.sha256(verifier.encode()).digest()).decode().rstrip('=')
                if challenge == entry['code_challenge']:
                    # Race condition: we do not invalidate code immediately (small window)
                    # Attacker can try to redeem same code with a different verifier if they win race.
                    access_token = secrets.token_urlsafe(32)
                    tokens[access_token] = entry['user']
                    # Insecure: code still present for a few milliseconds
                    # To simulate, we add a deliberate delay
                    time.sleep(0.1)  # window of opportunity
                    del auth_codes[code]  # remove after use (but after sleep)
                    self.send_response(200)
                    self.end_headers()
                    self.wfile.write(f'access_token={access_token}'.encode())
                else:
                    self.send_response(400)
                    self.end_headers()
                    self.wfile.write(b'invalid code_verifier')
            else:
                self.send_response(400)
                self.end_headers()
                self.wfile.write(b'invalid code')
        else:
            self.send_response(404)
            self.end_headers()

server = HTTPServer(('0.0.0.0', 5000), AuthHandler)
print("Auth server on :5000")
server.serve_forever()

CVE-2026-3456 – OAuth2 PKCE रेस कंडीशन (खाता अधिग्रहण)

Severity: High

📖 अवलोकन

OAuth2 प्राधिकरण सर्वर के PKCE प्रवाह में एक भेद्यता हमलावर को वैध क्लाइंट से पहले प्राधिकरण कोड भुनाने की अनुमति देती है, जिससे रेस कंडीशन के माध्यम से PKCE बायपास होता है। सर्वर कोड को परमाणु रूप से अमान्य करने में विफल रहता है, जिससे एक खिड़की बचती है जहाँ एक दुर्भावनापूर्ण verifier आज़माया जा सकता है।

⚙️ भेद्यता विवरण

  • प्रकार: रेस कंडीशन / TOCTOU
  • प्रभाव: पीड़ित का एक्सेस टोकन प्राप्त करके खाता अधिग्रहण।
  • मूल कारण: टोकन एंडपॉइंट PKCE की जाँच करता है, एक टोकन जारी करता है, और फिर कोड को हटा देता है, लेकिन कोड थोड़े समय के लिए वैध रहता है। एक कैप्चर किया गया कोड रखने वाला हमलावर (उदाहरण के लिए, ओपन रीडायरेक्ट के माध्यम से) कई verifier को एक साथ आज़मा सकता है।

🧪 एक्सप्लॉइट प्रदर्शन

  1. भेद्य प्रमाणीकरण सर्वर प्रारंभ करें:
    root@kitploit:~
    python vulnerable_auth_server.py
    
  2. रेस एक्सप्लॉइट चलाएँ:
    root@kitploit:~
    python race_condition_exploit.py
    
टूल डाउनलोड करें