
प्रमाण-अवधारणा जो ChurchCRM 6.7.2 से पहले के संस्करणों में प्रमाणित संख्यात्मक SQL इंजेक्शन प्रदर्शित करती है, जो WHERE क्लॉज़ को बायपास करने और कई रिकॉर्ड्स को प्रभावित करने के लिए लॉजिक हेरफेर सक्षम बनाती है। उपयोग निर्देश, पैच विवरण और शमन अनुशंसाएँ शामिल हैं।
लेखक: मोहम्मद इदरीस बन्यामेर
देश: जॉर्डन
हैंडल: @banyamer_security
GitHub: https://github.com/mbanyamer
इस रिपॉजिटरी में ChurchCRM के 6.7.2 से पहले के संस्करणों में प्रमाणित संख्यात्मक SQL इंजेक्शन भेद्यता का प्रमाण-अवधारणा (PoC) शामिल है।
यह भेद्यता संख्यात्मक माने जाने वाले पैरामीटरों में गैर-संख्यात्मक पेलोड इंजेक्ट करके SQL क्वेरी के लॉजिक मैनिपुलेशन की अनुमति देती है, जिससे क्वेरी व्यवहार में अनधिकृत परिवर्तन संभव होता है (जैसे, WHERE क्लॉज़ को बायपास करना)।
यह भेद्यता निम्नलिखित फ़ाइल में मौजूद है:
src/PaddleNumEditor.php
POST पैरामीटर PerID को उचित टाइप कास्टिंग या सैनिटाइज़ेशन के बिना सीधे कई SQL क्वेरी में जोड़ा जाता है। हालाँकि इसे संख्यात्मक माना जाता है, इसे SQL लॉजिक बदलने के लिए हेरफेर किया जा सकता है।
उदाहरण भेद्य पैटर्न (अवधारणात्मक):
DELETE FROM multibuy_mb WHERE mb_per_ID = $PerID AND mb_fr_ID = $frID;
इस तरह का पेलोड प्रदान करके:
0 OR 1=1 --
WHERE क्लॉज़ लॉजिक को बायपास किया जा सकता है, जिससे एकल-रिकॉर्ड ऑपरेशन बहु-रिकॉर्ड या पूर्ण-तालिका ऑपरेशन में बदल सकता है।
यह भेद्यता अंध डेटा निष्कर्षण के लिए नहीं, बल्कि लॉजिक दुरुपयोग के लिए है जो UPDATE, DELETE, या INSERT ऑपरेशन को प्रभावित करती है।
एक प्रमाणित हमलावर यह कर सकता है:
क्योंकि यह दोष केवल-संख्यात्मक लॉजिक में होता है, यह बुनियादी SQL इंजेक्शन पहचान और WAF नियमों को बायपास कर सकता है।
PoC निम्नलिखित प्रदर्शित करता है:
संख्यात्मक PerID का उपयोग करने वाला एक वैध अनुरोध जो केवल एक रिकॉर्ड को प्रभावित करता है।
एक निर्मित संख्यात्मक SQL इंजेक्शन पेलोड:
0 OR 1=1 --
यह पेलोड WHERE क्लॉज़ प्रतिबंधों को बायपास करता है, जिसके परिणामस्वरूप बहु-रिकॉर्ड या पूर्ण-तालिका प्रभाव होते हैं (जैसे, सामूहिक विलोपन)।
PoC सफल हेरफेर की पुष्टि करने के लिए HTTP प्रतिक्रियाओं और व्यवहारिक अंतरों की तुलना करता है।
निर्भरता स्थापित करें:
pip install requests
PoC स्क्रिप्ट में निम्नलिखित वेरिएबल संपादित करें:
TARGET_BASE = "http://localhost/churchcrm"
USERNAME = "admin"
PASSWORD = "yourpassword"
⚠️ केवल स्थानीय या अधिकृत परीक्षण इंस्टेंस का उपयोग करें
python3 churchcrm_cve-2026-24854_poc.py
शोषण की पुष्टि करने के लिए:
multibuy_mb) की जाँच पहले और बाद में करेंis_success_response() फ़ंक्शन को आपके इंस्टेंस की सामान्य बनाम हेरफेरित प्रतिक्रियाओं से मेल खाने के लिए ट्यून किया जा सकता है।
यह समस्या ChurchCRM 6.7.2 में कमिट के माध्यम से ठीक की गई थी:
748f5084
सुधार विवरण:
(int) कास्टिंग लागू की गई:
PerIDNum0 में बदल दिया जाता है, जिससे इंजेक्शन रुक जाता हैउपयोगकर्ताओं को तुरंत अपग्रेड करना चाहिए।
यह भेद्यता निम्नलिखित द्वारा खोजी और जिम्मेदारी से प्रकट की गई:
मोहम्मद इदरीस बन्यामेर
जॉर्डन
Instagram: @banyamer_security
GitHub: https://github.com/mbanyamer
यह प्रमाण-अवधारणा केवल शैक्षिक और रक्षात्मक सुरक्षा उद्देश्यों के लिए प्रदान की गई है।
इस कोड का उपयोग उन प्रणालियों के विरुद्ध न करें जिनके स्वामी आप नहीं हैं या जिनके परीक्षण की स्पष्ट अनुमति आपके पास नहीं है।
लेखक इस कोड के दुरुपयोग या क्षति के लिए कोई दायित्व नहीं लेता है।