
CVE-2023-3460

सुपर एडमिन, व्यवस्थापक, संपादक, लेखक, योगदानकर्ता, योगदानकर्ता। तो हम व्यवस्थापक विशेषाधिकार कैसे प्राप्त कर सकते हैं? पहले देखते हैं कि Ultimate Member प्लगइन कैसे काम करता है, पहले आपको प्लगइन को ठीक से काम करने के लिए कॉन्फ़िगर करना होगा ताकि हमें पृष्ठ अनुभाग में कुछ पृष्ठ बनाने होंगे फिर हम उन पृष्ठों को Ultimate Member > सेटिंग से लिंक करते हैं उसके बाद हम नई भूमिकाएँ बना सकते हैं या केवल Ultimate Member द्वारा प्रदान की गई डिफ़ॉल्ट भूमिकाओं का उपयोग कर सकते हैं।
Subscriber भूमिका के साथ एक सामान्य उपयोगकर्ता पंजीकृत किया और अगर हम mysql में wp_usermeta तालिका पर एक नज़र डालें तो हम देख सकते हैं कि wp_capabilities मान एक serialize सरणी पर सेट है और वहाँ से यह हमारी भूमिका को परिभाषित करता है जो इस मामले में Subscriber है।
wp_capabilities का मान कैसे बदल सकते हैं? हम पंजीकरण करते समय पोस्ट अनुरोध में wp_capabilities को एक पैरामीटर के रूप में पास कर सकते हैं जैसे:
is_metakey_banned नामक एक फ़ंक्शन है और यह फ़ंक्शन कुछ मानों जैसे "cap_key", "wp_capabilities", "wp_user_level", "user_activation_key" आदि की जाँच करके काम करता है... हमें जो चाहिए वह है wp_capabilities लेकिन अगर यह हमारे अनुरोध निकाय में है तो यह वहाँ break को हिट करेगा ताकि हम अपनी भूमिका बदलने से रोक सकें।
à, è, ì, ò, ù, À, È, Ì, Ò, Ù, तो अब अगर हम अपने अनुरोध निकाय में इस तरह के वर्णों का उपयोग करते हैं जैसे wp_càpabilities=administrator तो क्या होगा? यह class-user.php में पंक्ति 182 पर ब्रेक पॉइंट को हिट नहीं करता है और हम is_metakey_banned फ़ंक्शन को बायपास कर सकते हैं।


a:1:{s:13:"administrator";b:1;} ठीक है अब इसे आज़माएँ और इसे सीधे हमारे पैरामीटर में पास करें।
wp_capabilities का मान सेट किया लेकिन यह वैसा नहीं है जैसा हमने उम्मीद की थी।
wp_capabilities को देखने पर हम देख सकते हैं कि यह एक serialized सरणी है जो हम चाहते हैं, इसलिए वर्डप्रेस का अपना सीरियलाइज़ेशन है इसलिए हम इसका उपयोग करके अपने मान को एक सरणी के रूप में पास कर सकते हैं और फिर वर्डप्रेस बाकी काम करता है, तो यहाँ हमारा पेलोड इस तरह दिखता है wp_càpabilities[administrator]=1।
wp_capabilities का मान a:1:{s:13:"administrator";s:1:"1";} में बदल गया है जो अब व्यवस्थापक के रूप में लॉगिन कर सकता है।
