घर रोकथाम ऑप्टिकल सैलून, नेत्र विज्ञान क्लीनिक, संपर्क सुधार कक्ष के लिए सार्वभौमिक सॉफ्टवेयर। ऑप्टिकल सैलून, नेत्र विज्ञान क्लीनिक, संपर्क सुधार कक्ष के लिए सार्वभौमिक सॉफ्टवेयर निरंतर उपलब्ध टी

ऑप्टिकल सैलून, नेत्र विज्ञान क्लीनिक, संपर्क सुधार कक्ष के लिए सार्वभौमिक सॉफ्टवेयर। ऑप्टिकल सैलून, नेत्र विज्ञान क्लीनिक, संपर्क सुधार कक्ष के लिए सार्वभौमिक सॉफ्टवेयर निरंतर उपलब्ध टी

यूनिवर्सल सॉफ़्टवेयर विशेष रूप से ऑप्टिकल सैलून, नेत्र विज्ञान क्लीनिक, क्यूसी कार्यालयों और नेत्र रोग विशेषज्ञों के लिए डिज़ाइन किया गया है।
ऑप्टिकल सैलून और नेत्र रोग विशेषज्ञों के लिए काम का गुणात्मक रूप से नया स्तर।

कंप्यूटर प्रोग्राम "आर्मो प्लस"

(चिकित्सा लेखांकन और व्यापार)

  • सभी कार्यस्थलों और शाखाओं में एक एकीकृत ग्राहक फ़ाइल।
  • छूट की लचीली प्रणाली, डिस्काउंट कार्ड के साथ काम करें।
  • थोक और खुदरा बिक्री, चश्मे के उत्पादन और मरम्मत के लिए सेवाओं, चिकित्सा सेवाओं का रखरखाव और लेखांकन।
  • बारकोड स्कैनर के माध्यम से, कोड का उपयोग करके, नाम से जानकारी तुरंत दर्ज करें और खोजें।
  • टेम्प्लेट का उपयोग करके माल की आपूर्ति के लिए अनुरोधों का अनुकूलन। इन्वेंट्री न्यूनतम करना.
  • मेडिकल जांच डेटा की स्वचालित प्रविष्टि और मेडिकल नोट्स तैयार करना।
  • नुस्खे जारी करना और चश्मे के ऑर्डर के गठन को स्वचालित करना। एक डॉक्टर और एक मास्टर की सेवाओं के लिए लेखांकन।
  • ग्राहकों को परामर्श नियुक्ति या निर्धारित लेंस प्रतिस्थापन के लिए आमंत्रित करने के लिए एसएमएस संदेशों का उपयोग करके परिचालन संबंधी जानकारी का लक्षित वितरण; कंपनी के शेयरों के बारे में जानकारी देना.
  • नकदी और माल की आवाजाही, ग्राहक प्रवाह, कार्मिक कार्य, वित्तीय परिणामों पर सारांश और विस्तृत रिपोर्ट।
  • 1सी में बाद के उपयोग के लिए डेटा डाउनलोड करने की संभावना: लेखांकन, ऑनलाइन स्टोर और अन्य कार्यक्रम।
  • कर्मचारियों की व्यक्तिगत गतिविधि की निगरानी करना (बिक्री, परीक्षाओं के लिए रेफरल, ग्राहकों को छूट प्रदान करना आदि)।
  • प्रोग्राम फ़ंक्शंस तक उपयोगकर्ता की पहुंच को कॉन्फ़िगर करना।
  • दूरस्थ कार्यस्थानों (शाखाओं) के बीच स्वचालित डेटा विनिमय।
  • अनधिकृत पहुंच और सूचना की प्रतिलिपि के विरुद्ध उच्च स्तर की सुरक्षा। स्वचालित डेटाबेस संग्रह।

"एआरएमओ प्लस" वितरित डेटाबेस प्रौद्योगिकियों का उपयोग करने वाली एक प्रणाली है

स्वचालन के लिए डिज़ाइन किया गया:

थोक और खुदरा बिक्री का संचालन करना;

माल की आपूर्ति के लिए आवेदन, कार्यस्थलों पर माल और शेष माल की आवाजाही पर नियंत्रण;

नेत्र विज्ञान परीक्षाओं, परामर्शदात्री परीक्षाओं की डायरियों, चश्मे के लिए नुस्खे और आदेश जारी करने के डेटा के साथ एक इलेक्ट्रॉनिक क्लाइंट फ़ाइल बनाए रखना;

चिकित्सा परीक्षण डेटा का निर्माण और मुद्रण;

नकदी और माल की आवाजाही, ग्राहक प्रवाह और उनके सर्वेक्षणों के परिणामों पर रिपोर्ट तैयार करना।

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

निर्देशिकाएँ और दस्तावेज़

डेटा को संग्रहीत और व्यवस्थित करने, दस्तावेज़ों, रिपोर्टों, रोगी फ़ाइलों आदि को शीघ्रता से भरने के लिए। प्रदान किया धार्मिक आस्था. निर्देशिकाओं में उपयोगकर्ता के अनुकूल इंटरफ़ेस है और उनके साथ काम करना सहज है मदद से दस्तावेज़व्यवसाय और वित्तीय लेनदेन के बारे में जानकारी दर्ज की जाती है, माल के लिए अनुरोध किया जाता है, शेष राशि दर्ज की जाती है निर्देशिकाओं और दस्तावेज़ों तक पहुंच प्रोग्राम प्रशासक द्वारा निर्धारित की जाती है,उपयोगकर्ताओं को विशिष्ट "अधिकार" निर्दिष्ट करना

विभिन्न कार्यों को एक साथ निष्पादित करने की संभावना

क्लाइंट फ़ाइल

एआरएमओ प्लस में रखरखाव को एक विशेष भूमिका दी गई हैइलेक्ट्रॉनिक क्लाइंट फ़ाइल. एक एकीकृत क्लाइंट फ़ाइल में प्राथमिक डेटा, इतिहास, निदान, दौरे, परीक्षाओं और नेत्र संबंधी परीक्षाओं की एक डायरी, नुस्खे, चश्मे के लिए ऑर्डर, खरीद पर डेटा, ग्राहक के आवेदन और अग्रिमों के बारे में जानकारी होती है। कार्यक्रम ग्राहकों से बिक्री, ऑर्डर और अनुरोधों पर रिपोर्ट और नेत्र संबंधी परीक्षाओं से उद्धरण तैयार करता है। ग्राहकों के लिए एक लचीली छूट योजना स्थापित की गई है। एसएमएस और ई-मेल संदेशों के माध्यम से एक अधिसूचना प्रणाली है।


एआरएमओ प्लस में बुनियादी रिपोर्ट

  • आय, व्यय, शेष, टर्नओवर पर सारांश और विस्तृत रिपोर्ट
  • राजस्व रिपोर्ट
  • दस्तावेज़ों और फ़ाइलों पर अग्रिम रिपोर्ट
  • उपभोज्य कीमतों के नियंत्रण पर रिपोर्ट
  • चश्मे के लिए आवेदनों और आदेशों पर रिपोर्ट
  • शेल्फ जीवन रिपोर्ट
  • दस्तावेज़ रिपोर्ट
  • ग्राहकों, अपेक्षित विज़िट, ग्राहक स्रोतों पर रिपोर्ट
  • ग्राहक छूट रिपोर्ट
  • कर्मियों पर सारांश और विस्तृत रिपोर्ट

लेखांकन और विश्लेषण कार्यों के अलावा, रिपोर्ट का उपयोग कर्मचारियों के काम, बिक्री और ग्राहक प्रवाह की निगरानी के लिए किया जाता है।

वितरित डेटाबेस और डेटा विनिमय

वितरित डेटाबेस तकनीक भौगोलिक रूप से दूरस्थ ऑप्टिशियंस, नेत्र विज्ञान कार्यालयों और शाखाओं के काम की अनुमति देती है। इलेक्ट्रॉनिक एक्सचेंज पैकेट के माध्यम से सूचना एक दूसरे तक प्रेषित की जाती है। इसके कारण, दूरस्थ कार्यस्थानों पर डेटा सिंक्रनाइज़ेशन प्राप्त होता है। इस प्रकार इसका निर्माण होता है एकीकृत रोगी फ़ाइलऔर संदर्भ और दस्तावेजी जानकारी का एक डेटाबेस एआरएमओ प्लस के साथ काम करने वाली कंपनियां इलेक्ट्रॉनिक रूप से एक दूसरे के साथ डेटा का आदान-प्रदान कर सकती हैं।


डेटाबेस प्रशासन सेवा

संचालन की विश्वसनीयता इसके माध्यम से सुनिश्चित की जाती है संरक्षणडेटाबेस सहेजा गया डेटा हमेशा हो सकता है पुनर्स्थापित करना। डेटाबेस को संपीड़ित करने के लिए, डेटा अनलोडिंग और सफाई प्रदान की जाती है। एआरएमओ प्लस कर सकते हैं 1सी:एंटरप्राइज़ प्रोग्राम, एक्सेल, ऑनलाइन स्टोर पर डेटा अपलोड करें।

जूमला में, सफल पंजीकरण के बाद, उपयोगकर्ताओं को डिफ़ॉल्ट रूप से रीडायरेक्ट किया जाता है लोग इन वाला पन्ना(यदि खाते को सक्रिय करने की आवश्यकता नहीं है)। वहां से (लॉग इन करने के बाद) उपयोगकर्ताओं को एक पर पुनर्निर्देशित किया जाता है उपयोगकर्ता रूपरेखापृष्ठ। ऐसा तब भी होता है जब आपने लॉगिन पुनर्निर्देशन को किसी और चीज़ पर सेट किया हो लॉगिन फॉर्म मॉड्यूल.

इस व्यवहार को बदलने के लिए आप पंजीकरण के बाद उपयोगकर्ताओं को अपनी वेबसाइट के किसी अन्य पृष्ठ पर पुनर्निर्देशित कर सकते हैं।
ऐसा करने के लिए आपको एक कोर जूमला फ़ाइल को संपादित करना होगा। सावधान रहें कि आपके परिवर्तन जूमला अपडेट द्वारा अधिलेखित किए जा सकते हैं। कोर जूमला फ़ाइलों में किए गए परिवर्तनों को हमेशा दस्तावेज़ में रखें ताकि आवश्यकता पड़ने पर आप उन्हें तुरंत दोबारा कर सकें।

खुली फाइल:
घटक/com_users/नियंत्रक/पंजीकरण.php

बहुत नीचे तक स्क्रॉल करें. आरंभिक पंक्ति 162 या इसके आसपास आपके पास प्रवाहित कोड होगा:

अगर ($वापसी === "व्यवस्थापक" ) ( $यह -> सेटमैसेज (जेटेक्स्ट:: _() ); $यह -> सेटरीडायरेक्ट (जेरूट:: _(, गलत ) ) ; ) अन्यथा अगर ($वापसी == = "useractivate" ) ($this -> setMessage (JText::_() ); $this -> setRedirect (JRoute::_( "index.php?option=com_users&view=पंजीकरण&लेआउट=पूर्ण", असत्य ) ) ; ) अन्य ( $this -> setMessage (JText::_() ); $this -> setRedirect (JRoute::_( "index.php?option=com_users&view=लॉगिन", असत्य ) ) ; )

इस अनुभाग में आपके पास तीन लिंक हैं जो शुरू होते हैं Index.php?

  • यदि खाता किसी व्यवस्थापक द्वारा सक्रिय किया जाना है तो पहला () उपयोगकर्ता पंजीकरण के बाद निष्पादित किया जाता है
  • दूसरा ( Index.php?option=com_users&view=पंजीकरण&लेआउट=पूर्ण), यदि खाता उपयोगकर्ता द्वारा सक्रिय किया जाना है
  • तीसरा ( Index.php?option=com_users&view=लॉगिन), यदि खाता सक्रियण की आवश्यकता नहीं है।

आपके द्वारा उपयोग किए जाने वाले पंजीकरण के प्रकार के आधार पर लिंक को अपने पुनर्निर्देशन पृष्ठ के पूर्ण यूआरएल से बदलें और आपका काम हो गया।
उदाहरण के लिए, यदि मेरी वेबसाइट पर उपयोगकर्ता सक्रियण की आवश्यकता नहीं है और मैं पंजीकरण के बाद उपयोगकर्ताओं को पुनर्निर्देशित करना चाहता हूं http://www.mywebsite.com/welcome-regअद्यतन कोड होगा:

// प्रोफ़ाइल स्क्रीन पर रीडायरेक्ट करें।यदि ($वापसी === "व्यवस्थापक करें") ( $यह -> सेटमैसेज (JText::_( "COM_USERS_REGISTRATION_COMPLETE_VERIFY") ) ; $यह -> setRedirect(JRoute::_( "index.php?option=com_users&view=पंजीकरण&लेआउट=पूर्ण", असत्य ) ) ; ) अन्यथा यदि ($ वापसी === "उपयोगकर्ता सक्रिय करें") ( $ यह -> सेटमैसेज (JText::_( "COM_USERS_REGISTRATION_COMPLETE_ACTIVATE") ) ; $यह -> setRedirect(JRoute::_( "index.php?option=com_users&view=पंजीकरण&लेआउट=पूर्ण", असत्य ) ) ; ) अन्य ( $यह -> सेटमैसेज (JText::_( "COM_USERS_REGISTRATION_SAVE_SUCCESS") ) ; $यह -> setRedirect(JRoute::_( "http://www.mywebsite.com/welcome-reg" , असत्य ) ) ; )

भले ही आप अपनी वेबसाइट के किसी भी पेज पर रीडायरेक्ट करें, सिस्टम संदेश " पंजीकरण प्रक्रिया के लिए धन्यवाद..."अभी भी प्रदर्शित किया जाएगा। यदि आप यह संदेश नहीं चाहते हैं, तो अपने पुनर्निर्देशन URL के ऊपर की पूरी पंक्ति हटा दें। जैसे $this->setMessage(JText::_("COM_USERS_REGISTRATION_SAVE_SUCCESS"));

यदि आपको खाता सक्रियण की आवश्यकता नहीं है (नया उपयोगकर्ता खाता सक्रियण पर सेट है)। कोई नहीं) उपयोगकर्ता प्रोफ़ाइल पृष्ठ से बचने के लिए आपको बस इतना ही चाहिए। हालाँकि, यदि उपयोगकर्ता को ईमेल के माध्यम से खाता सक्रिय करना है (खाता सक्रियण सेट है)। खुद) यह पर्याप्त नहीं हो सकता है. पंजीकरण के तुरंत बाद उपयोगकर्ता को एक वेब पेज पर पुनः निर्देशित किया जाएगा जो आपको अपेक्षित कोड में प्रदान किया गया है। हालाँकि, जब उपयोगकर्ता सक्रियण ईमेल में किसी लिंक पर क्लिक करता है, तो उन्हें पहले बताए गए लॉगिन फॉर्म पर ले जाया जाएगा और यदि वे लॉगिन करने के लिए इसका उपयोग करते हैं, तो वे उपयोगकर्ता प्रोफ़ाइल पृष्ठ पर पहुंच जाएंगे। इसे रोकने के लिए आप उपयोगकर्ता प्रोफ़ाइल पृष्ठ को पूरी तरह से अक्षम कर सकते हैं और इसके बजाय उपयोगकर्ताओं को अपनी पसंद के किसी भी पृष्ठ पर पुनर्निर्देशित कर सकते हैं। कैसे, यह जानने के लिए यह लेख पढ़ें।

जूमला 1.6
जूमला 1.7
जूमला 2.5

आज हम लोकप्रिय सीएमएस जूमला में एक महत्वपूर्ण 1-दिवसीय भेद्यता के शोषण को देखेंगे, जो अक्टूबर के अंत में इंटरनेट पर फैल गया था। हम संख्याओं के साथ कमजोरियों के बारे में बात करेंगे सीवीई-2016-8869, सीवीई-2016-8870और सीवीई-2016-9081. ये तीनों कोड के एक टुकड़े से आते हैं जो पांच लंबे वर्षों तक ढांचे की गहराई में पड़ा रहा, पंखों में इंतजार कर रहा था, और फिर मुक्त हो गया और अपने साथ अराजकता, हैक की गई साइटों और इस जूमला के निर्दोष उपयोगकर्ताओं के आँसू लेकर आया। केवल सबसे बहादुर और साहसी डेवलपर्स, जिनकी आंखें मॉनिटर की रोशनी से लाल हो गई हैं, और जिनके कीबोर्ड ब्रेड के टुकड़ों से अटे पड़े हैं, उग्र बुरी आत्माओं को चुनौती देने और सुधार की वेदी पर अपना सिर रखने में सक्षम थे।

चेतावनी

सभी जानकारी केवल सूचनात्मक उद्देश्यों के लिए प्रदान की गई है। इस लेख की सामग्री से होने वाले किसी भी संभावित नुकसान के लिए न तो संपादक और न ही लेखक जिम्मेदार हैं।

जहां से यह सब शुरू हुआ

6 अक्टूबर 2016 को, डेमिस पाल्मा ने स्टैक एक्सचेंज पर एक विषय बनाया जिसमें उन्होंने पूछा: क्यों, वास्तव में, जूमला संस्करण 3.6 में एक ही नाम रजिस्टर() के साथ उपयोगकर्ताओं को पंजीकृत करने के दो तरीके हैं? पहला UserControllerRegistration कंट्रोलर में है और दूसरा UsersControllerUser कंट्रोलर में है। डेमिस जानना चाहता था कि क्या UsersControllerUser::register() पद्धति का उपयोग कहीं किया गया था, या क्या यह पुराने तर्क से बचा हुआ एक विकासवादी कालवाद था। उनकी चिंता यह थी कि भले ही इस पद्धति का उपयोग किसी भी दृष्टिकोण से नहीं किया जाता है, फिर भी इसे एक गढ़ी गई क्वेरी द्वारा बुलाया जा सकता है। जिस पर मुझे इटोक्टोपस उपनाम के तहत एक डेवलपर से प्रतिक्रिया मिली, जिसने पुष्टि की: समस्या वास्तव में मौजूद है। और जूमला डेवलपर्स को एक रिपोर्ट भेजी।

तब घटनाएँ सबसे तेजी से विकसित हुईं। 18 अक्टूबर को, जूमला डेवलपर्स ने डेमिस की रिपोर्ट स्वीकार कर ली, जिसने उस समय तक एक पीओसी का मसौदा तैयार कर लिया था जो उपयोगकर्ता पंजीकरण की अनुमति देगा। उन्होंने अपनी वेबसाइट पर एक नोट प्रकाशित किया, जहां उन्होंने सामान्य शब्दों में अपनी समस्या और इस मामले पर अपने विचारों के बारे में बात की। उसी दिन, जूमला 3.6.3 का एक नया संस्करण जारी किया गया है, जिसमें अभी भी असुरक्षित कोड शामिल है।

इसके बाद, डेविड टैम्पेलिनी एक साधारण उपयोगकर्ता को नहीं, बल्कि एक प्रशासक को पंजीकृत करने के बिंदु पर बग को घुमाता है। और 21 अक्टूबर को जूमला सुरक्षा टीम के पास एक नया मामला आता है। इसमें पहले से ही विशेषाधिकार बढ़ाने की बात कही गई है. उसी दिन, जूमला वेबसाइट पर एक घोषणा दिखाई देती है कि मंगलवार, 25 अक्टूबर को सीरियल नंबर 3.6.3 के साथ अगला संस्करण जारी किया जाएगा, जो सिस्टम कर्नेल में एक महत्वपूर्ण भेद्यता को ठीक करता है।

25 अक्टूबर जूमला सिक्योरिटी स्ट्राइक टीम को डेमिस द्वारा खोजे गए कोड के टुकड़े द्वारा बनाई गई नवीनतम समस्या का पता चला। फिर 21 अक्टूबर को अस्पष्ट नाम प्रिपेयर 3.6.4 स्टेबल रिलीज़ के साथ एक कमिट को आधिकारिक जूमला रिपॉजिटरी की मुख्य शाखा में धकेल दिया जाता है, जो दुर्भाग्यपूर्ण बग को ठीक करता है।

इसके सामने आने के बाद, कई इच्छुक व्यक्ति डेवलपर समुदाय में शामिल हो जाते हैं - वे भेद्यता को बढ़ावा देना और कारनामे तैयार करना शुरू कर देते हैं।

27 अक्टूबर को, शोधकर्ता हैरी रॉबर्ट्स ने Xiphos रिसर्च रिपॉजिटरी में एक तैयार-निर्मित शोषण अपलोड किया है जो एक कमजोर सीएमएस वाले सर्वर पर एक PHP फ़ाइल अपलोड कर सकता है।

विवरण

खैर, पृष्ठभूमि खत्म हो गई है, आइए सबसे दिलचस्प भाग पर चलते हैं - भेद्यता का विश्लेषण। मैंने जूमला 3.6.3 को एक परीक्षण संस्करण के रूप में स्थापित किया है, इसलिए सभी पंक्ति संख्याएँ इस संस्करण के लिए प्रासंगिक होंगी। और फ़ाइलों के सभी पथ जो आप नीचे देखेंगे, स्थापित सीएमएस की जड़ के सापेक्ष इंगित किए जाएंगे।

डेमिस पाल्मा की खोज के लिए धन्यवाद, हम जानते हैं कि दो विधियाँ हैं जो सिस्टम में उपयोगकर्ता पंजीकरण करती हैं। पहला सीएमएस द्वारा उपयोग किया जाता है और फ़ाइल /components/com_users/controllers/registration.php:108 में स्थित होता है। दूसरा (जिसे हमें कॉल करने की आवश्यकता होगी) /components/com_users/controllers/user.php:293 में रहता है। आइए इस पर करीब से नज़र डालें।

286: /** 287: * उपयोगकर्ता को पंजीकृत करने की विधि। 288: * 289: * @रिटर्न बूलियन 290: * 291: * @सिंस 1.6 292: */ 293: पब्लिक फंक्शन रजिस्टर() 294: (295: JSession::checkToken("post") या jexit(JText::_ ("JINVALID_TOKEN")); ... 300: // फॉर्म डेटा प्राप्त करें। 301: $ डेटा = $ यह-> इनपुट-> पोस्ट-> प्राप्त करें ("उपयोगकर्ता", सरणी(), "सरणी"); । .. 315: $रिटर्न = $मॉडल->वैलिडेट($फॉर्म, $डेटा); 316: 317: // त्रुटियों की जांच करें। 318: यदि ($रिटर्न === गलत) 319: (...345: / / पंजीकरण समाप्त करें। 346: $रिटर्न = $मॉडल->रजिस्टर($डेटा);

यहाँ मैंने केवल दिलचस्प पंक्तियाँ छोड़ी हैं। असुरक्षित विधि का पूर्ण संस्करण जूमला रिपॉजिटरी में देखा जा सकता है।

आइए जानें कि सामान्य उपयोगकर्ता पंजीकरण के दौरान क्या होता है: कौन सा डेटा भेजा जाता है और इसे कैसे संसाधित किया जाता है। यदि सेटिंग्स में उपयोगकर्ता पंजीकरण सक्षम है, तो फॉर्म http://joomla.local/index.php/component/users/?view=registration पर पाया जा सकता है।


एक वैध उपयोगकर्ता पंजीकरण अनुरोध निम्नलिखित स्क्रीनशॉट जैसा दिखता है।


com_users घटक उपयोगकर्ताओं के साथ काम करने के लिए जिम्मेदार है। अनुरोध में कार्य पैरामीटर पर ध्यान दें. इसका प्रारूप $controller.$method है। आइए फ़ाइल संरचना को देखें।

फ़ोल्डर में स्क्रिप्ट के नाम नियंत्रकोंबुलाए गए नियंत्रकों के नामों के अनुरूप। चूँकि हमारे अनुरोध में अब $controller = "registration" शामिल है, फ़ाइल को कॉल किया जाएगा पंजीकरण.phpऔर इसकी रजिस्टर() विधि।

ध्यान दें, प्रश्न: पंजीकरण प्रसंस्करण को कोड में कमजोर स्थान पर कैसे स्थानांतरित किया जाए? आपने शायद इसका अनुमान पहले ही लगा लिया होगा। कमजोर और वास्तविक तरीकों के नाम समान हैं (रजिस्टर), इसलिए हमें केवल बुलाए गए नियंत्रक का नाम बदलने की जरूरत है। हमारा असुरक्षित नियंत्रक कहाँ स्थित है? यह सही है, फ़ाइल में उपयोगकर्ता.php. यह $controller = "user" निकला। सब कुछ एक साथ रखने पर हमें Task = user.register मिलता है। अब पंजीकरण अनुरोध को उस विधि द्वारा संसाधित किया जाता है जिसकी हमें आवश्यकता है।


दूसरी चीज़ जो हमें करने की ज़रूरत है वह है डेटा को सही प्रारूप में भेजना। यहां सब कुछ सरल है. वैध रजिस्टर() हमसे jform नामक एक सरणी की अपेक्षा करता है, जिसमें हम पंजीकरण डेटा - नाम, लॉगिन, पासवर्ड, ईमेल पास करते हैं (अनुरोध के साथ स्क्रीनशॉट देखें)।

  • /components/com_users/controllers/registration.php: 124: // उपयोगकर्ता डेटा प्राप्त करें। 125: $requestData = $this->input->post->get("jform", array(), "array");

हमारे क्लाइंट को यह डेटा उपयोगकर्ता नामक सरणी से प्राप्त होता है।

  • /components/com_users/controllers/user.php: 301: // फॉर्म डेटा प्राप्त करें। 302: $डेटा = $यह->इनपुट->पोस्ट->प्राप्त करें("उपयोगकर्ता", सरणी(), "सरणी");

इसलिए, हम अनुरोध में सभी मापदंडों के नाम jfrom से user में बदल देते हैं।

हमारा तीसरा कदम एक वैध सीएसआरएफ टोकन ढूंढना है, क्योंकि इसके बिना कोई पंजीकरण नहीं होगा।

  • /components/com_users/controllers/user.php: 296: JSession::checkToken("post") या jexit(JText::_("JINVALID_TOKEN"));

यह MD5 हैश जैसा दिखता है, और आप इसे, उदाहरण के लिए, साइट /index.php/component/users/?view=login पर प्राधिकरण फॉर्म से ले सकते हैं।


अब आप इच्छित विधि का उपयोग करके उपयोगकर्ता बना सकते हैं। यदि सब कुछ ठीक रहा, तो बधाई हो - आपने बस एक भेद्यता का फायदा उठाया सीवीई-2016-8870"नए उपयोगकर्ताओं को पंजीकृत करने के लिए अनुपलब्ध अनुमति जांच।"

UsersControllerRegistration नियंत्रक से "कार्यशील" रजिस्टर() विधि में यह ऐसा दिखता है:

  • /components/com_users/controllers/registration.php: 113: // यदि पंजीकरण अक्षम है - लॉगिन पृष्ठ पर रीडायरेक्ट करें। 114: यदि (JComponentHelper::getParams("com_users")->get("allowUserRegistration") == 0) 115: ( 116: $this->setRedirect(JRoute::_("index.php?option=com_users&view= लॉगिन", गलत)); 117: 118: गलत वापसी; 119: )

और इसलिए असुरक्षित में:

  • /components/com_users/controllers/user.php:

हाँ, बिलकुल नहीं.

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

निरंतरता केवल सदस्यों के लिए उपलब्ध है

विकल्प 1. साइट पर सभी सामग्रियों को पढ़ने के लिए "साइट" समुदाय से जुड़ें

निर्दिष्ट अवधि के भीतर समुदाय में सदस्यता आपको सभी हैकर सामग्रियों तक पहुंच प्रदान करेगी, आपकी व्यक्तिगत संचयी छूट बढ़ाएगी और आपको एक पेशेवर Xakep स्कोर रेटिंग जमा करने की अनुमति देगी!



साइट पर नया

>

सबसे लोकप्रिय