
CVE-2025-68400 - ChurchCRM vulnerable to time-based blind SQL Injection in ConfirmReportEmail.php
| क्षेत्र | विवरण |
|---|---|
| CVE पहचानकर्ता | CVE-2025-68400 |
| गंभीरता | गंभीर |
| सलाह | सलाह देखें |
| खोजकर्ता | Lukasz Rybak |
ChurchCRM 6.3.0 में लीगेसी एंडपॉइंट /Reports/ConfirmReportEmail.php में एक गंभीर SQL इंजेक्शन कमजोरी मौजूद है। हालांकि इस सुविधा को UI से हटा दिया गया था, फ़ाइल तैनात रहती है और URL के माध्यम से सीधे पहुँची जा सकती है। यह मृत लेकिन पहुँच योग्य कोड का एक क्लासिक मामला है। कोई भी प्रमाणित उपयोगकर्ता - जिसमें शून्य अनुमतियाँ वाला भी शामिल है - familyId पैरामीटर के माध्यम से SQL इंजेक्शन का शोषण कर सकता है।
समस्या यहाँ स्थित है:
src/Reports/ConfirmReportEmail.php
कमजोर कोड (पंक्तियाँ 82–83):
if (InputUtils::legacyFilterInput($_GET['familyId'], 'int')) {
$sSubQuery = ' and fam_id in (' . $_GET['familyId'] . ') ';
}
यह कमजोर क्यों है:
legacyFilterInput() का वापसी मान पूरी तरह से अनदेखा किया जाता है।$_GET['familyId'] मान सीधे SQL क्वेरी में संयोजित किया जाता है।मृत लेकिन पहुँच योग्य एंडपॉइंट:
/Reports/ConfirmReportEmail.php?familyId=
सामान्य व्यवहार:
302 Redirect → /v2/family/&PDFEmailed=
) या -- वाले दुर्भावनापूर्ण पेलोड पुनर्निर्देशन तर्क को तोड़ते हैं और कमजोर SQL को निष्पादित करते हैं।
शून्य अनुमतियाँ वाला उपयोगकर्ता भी कमजोरी का शोषण कर सकता है।
एक SLEEP(5) पेलोड विश्वसनीय रूप से प्रतिक्रिया में देरी करता है, SQL निष्पादन सिद्ध करता है।
प्रमाणित उपयोगकर्ता यहाँ जाता है:
देखा गया परिणाम:
sqlmap पुष्टि:
इस CVE को समन्वित कमजोरी प्रकटीकरण प्रथाओं के अनुसार जिम्मेदारी से प्रकट किया गया था। यहाँ प्रदान की गई जानकारी केवल शैक्षिक और रक्षात्मक उद्देश्यों के लिए है।