403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/inetpub/wwwroot/OPENPOSFNB/wp-content/plugins/wp-file-manager-pro/controller/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/inetpub/wwwroot/OPENPOSFNB/wp-content/plugins/wp-file-manager-pro/controller/fm_controller.php
<?php 
if(!class_exists('mk_fm_controller')) {
	class mk_fm_controller {
		/* Auto */
		var $admin_name;
	    var $appToken;
		var $app_user_id;
		var $secret_number;
		var $admin_email;
		public function __construct() {
			$ajax_modes = array('uc','dc','fn');
			foreach($ajax_modes as $ajax_mode) {
			 add_action('wp_ajax_mk_file_folder_manager_'.$ajax_mode.'', array(&$this, 'mk_file_folder_manager_'.$ajax_mode.'_callback'));	
			}
			$this->admin_email = get_option('admin_email');
			$user = get_user_by( 'email', $this->admin_email );
			$this->admin_name = is_object($user) ? $user->display_name : '';
			$this->appToken = get_option('wp_file_manager_mobile_app_token');
			$this->app_user_id = get_option('wp_file_manager_mobile_app_uid');
			$this->secret_number = get_option('wp_file_manager_mobile_random_number');
		}
		 /* UC */
		public function mk_file_folder_manager_uc_callback() {
			$opt = get_option('wp_filemanager_options');
			$current_user = wp_get_current_user();
			$siteurl = site_url();
			$userID = $current_user->ID;
			$nonce =  $_POST['uploadNonce'];
			$fmkey = get_option('fm_key');
			if(wp_verify_nonce( $nonce, 'wp_file_manager_upload_'.$userID )) {
			  $uploadedfiles = isset($_POST['uploadefiles']) ? ($_POST['uploadefiles']) : '';
			  $uploadedFilesNames = isset($_POST['uploadedFilesNames']) ? $_POST['uploadedFilesNames'] : '';
			  $user_info = get_userdata($userID);
			  if(!empty($user_info) && !empty($uploadedfiles)) {
				 $files = '';
				 $upFiles = '';
				 $fileCount = 1;

				 foreach($uploadedfiles as $key => $uploadedfile) {


					$uploadedFile = explode('-m-', $uploadedfile);

					if(base64_decode($uploadedFile[1]) != $fmkey) {
					   return;
					}

					$files .= ' ('.$fileCount.') '.urldecode(base64_decode($uploadedFile[0]));


					$db_up = !empty($uploadedFile[0]) ? urldecode(base64_decode($uploadedFile[0])) : sanitize_text_field($uploadedFilesNames[$key]);

					$upFiles .= ' ('.$fileCount.') '.$db_up;	

				 	$fileCount++;	
				 }
				 $user_id = $user_info->ID;
				 $user_email = $user_info->user_email;
				 $user_dn = $user_info->display_name;
				 $subject = 'Files Uploaded';
				 $body = 'Hello, '.$this->admin_name.' ('.$this->admin_email.') - '.$siteurl;
				 $body .= ', Some Files are uploaded on filemanager of your website '.$siteurl.' by User: '.$user_dn.' ('.$user_email.') (ID: '.$user_id.'). Uploaded Files are '.$files;
				 $this->email($files, 'uploaded', $user_dn, $user_email, $user_id);
				 $this->slack($body);
				 $info = array(
				         'email' => $user_email,
						 'uid' => $user_id,
						 'display_name' => $user_dn,
						 'action' => 'Files Uploaded',
						 'site_url' => site_url(),
						 'files' => $files,
						 'client_id' => $this->appToken,
						 'app_user_id' => $this->app_user_id,
						 'secret_number' => $this->secret_number,
						 'date' => date("Y-m-d h:i:s A")
						 
				);
				 $this->fm_file_action_log($user_id, $user_dn, 'upload', $upFiles);
				 $this->phone($info);
			  }
			}
			  die;
		  }
	  /* DC */
	   public function mk_file_folder_manager_dc_callback() {
			$opt = get_option('wp_filemanager_options');
			$current_user = wp_get_current_user();
			  $siteurl = site_url();
			  $userID = $current_user->ID;
			  $nonce =  $_POST['downloadNonce'];
			  if(wp_verify_nonce( $nonce, 'wp_file_manager_download_'.$userID )) {
			  $downloadedfiles = isset($_POST['downloadedFiles']) && !empty($_POST['downloadedFiles']) ? json_decode(stripslashes($_POST['downloadedFiles'])) : '';
			  $user_info = get_userdata($userID);
			  $fmkey = get_option('fm_key');
			  if(!empty($user_info) && !empty($downloadedfiles)) {
				 $files = '';
				 $fileCount = 1;
				 foreach($downloadedfiles as $key => $downloadedfile) {
					

					 $downloadedFile = explode('-m-', $downloadedfile);

					 if(base64_decode($downloadedFile[1]) != $fmkey) {
						return;
					 }

					 $name = !empty($downloadedFile[0]) ? urldecode(base64_decode($downloadedFile[0])) : sanitize_text_field($key);

					$files .= ' ('.$fileCount.') '.$name.''; 
				   $fileCount++;	
				 }
				 $user_id = $user_info->ID;
				 $user_email = $user_info->user_email;
				 $user_dn = $user_info->display_name;
				 $subject = 'Files Downloaded';
				 $body = 'Hello, '.$this->admin_name.' ('.$this->admin_email.') - '.$siteurl;
				 $body .= ', Some Files are downloaded from filemanager of your website '.$siteurl.' by User: '.$user_dn.' ('.$user_email.') (ID: '.$user_id.'). Downloaded Files are '.$files;
				 $this->email($files, 'downloaded', $user_dn, $user_email, $user_id);
				 $this->slack($body);
				 $info = array(
				         'email' => $user_email,
						 'uid' => $user_id,
						 'display_name' => $user_dn,
						 'action' => 'Files Downloaded',
						 'site_url' => site_url(),
						 'files' => $files,
						 'client_id' => $this->appToken,
						 'app_user_id' => $this->app_user_id,
						 'secret_number' => $this->secret_number,
						 'date' => date("Y-m-d h:i:s A")
						 
				);
				$this->fm_file_action_log($user_id, $user_dn, 'download', $files);
				 $this->phone($info);
			  }
			}
			  die;	  
	   }
	    /* fn */
	   public function mk_file_folder_manager_fn_callback() {
			  $opt = get_option('wp_filemanager_options');
			  $fmkey = get_option('fm_key');
			  $siteurl = site_url();
			  $current_user = wp_get_current_user();
			  $userID = $current_user->ID;
			  $nonce =  $_POST['editNonce'];
			  if(wp_verify_nonce( $nonce, 'wp_file_manager_edit_'.$userID )) {

				$filename = isset($_POST['file']) ? sanitize_text_field($_POST['file']) : '';

				$getfilePath = $_POST['filePath'];

				$editedFile = explode('-m-', $getfilePath);

					 if(base64_decode($editedFile[1]) != $fmkey) {
						return;
					 }
			
				$filePath = isset($editedFile[0]) ? urldecode(base64_decode($editedFile[0])) : '';

				$file = !empty($filePath) ? $filePath : $filename;
				
				$user_info = get_userdata($userID);
					if(!empty($user_info) && !empty($file)) {
						$user_id = $user_info->ID;
						$user_email = $user_info->user_email;
						$user_dn = $user_info->display_name;
						$subject = 'File Modified';
						$body = 'Hello, '.$this->admin_name.' ('.$this->admin_email.') - '.$siteurl;
						$body .= ', '.$file.' is modified or edited on filemanager of your website '.$siteurl.' by User: '.$user_dn.' ('.$user_email.') (ID: '.$user_id.')';
						$this->slack($body);
						$this->email($file, 'modified or edited', $user_dn, $user_email, $user_id);
						$info = array(
							'email' => $user_email,
							'uid' => $user_id,
							'display_name' => $user_dn,
							'action' => 'Files Edited',
							'site_url' => site_url(),
							'files' => $file,
							'client_id' => $this->appToken,
							'app_user_id' => $this->app_user_id,
							'secret_number' => $this->secret_number,
							'date' => date("Y-m-d h:i:s A")
							
							);
						$this->fm_file_action_log($user_id, $user_dn, 'edit', $file);		
						$this->phone($info);	 
											
					}
			 }
			  die;	  
	   }
	  /* email */
	   public function email($files, $action, $user_dn, $user_email, $user_id) {
		   $opt = get_option('wp_file_manager_email_notifications');
		   if(isset($opt['fm_enable_admin_email']) && $opt['fm_enable_admin_email'] == '1') {
			   $siteurl = site_url();
			   $headers = array('Content-Type: text/html; charset=UTF-8');
			   $emails = $opt['fmn_email'];
			   
			   $subject = 'Files '.ucwords($action);
			   $body = 'Hello, %adminemail% - %siteurl%';
			   $body .= ', %files% are '.$action.' on filemanager of your website %siteurl% by User: %username% (%$useremail%) (ID: %$userid%)';
			   $body .= ', Thanks';
			   if($action == 'uploaded') {
				   //subject
					if(isset($opt['fmn_file_upload_subject']) && !empty(trim($opt['fmn_file_upload_subject']))) {
						$subject = $opt['fmn_file_upload_subject'];
					}
					//body
					if(isset($opt['fmn_file_upload_body']) && !empty(trim($opt['fmn_file_upload_body']))) {
						$body = $opt['fmn_file_upload_body'];
					}
			   } else if($action == 'downloaded') {
					//subject
					if(isset($opt['fmn_file_download_subject']) && !empty(trim($opt['fmn_file_download_subject']))) {
						$subject = $opt['fmn_file_download_subject'];
					}
					//body
					if(isset($opt['fmn_file_download_body']) && !empty(trim($opt['fmn_file_download_body']))) {
						$body = $opt['fmn_file_download_body'];
					}
			  } else if($action == 'modified or edited') {
				//subject
				if(isset($opt['fmn_file_edit_subject']) && !empty(trim($opt['fmn_file_edit_subject']))) {
					$subject = $opt['fmn_file_edit_subject'];
				}
				//body
				if(isset($opt['fmn_file_edit_body']) && !empty(trim($opt['fmn_file_edit_body']))) {
					$body = $opt['fmn_file_edit_body'];
				}
		     }
			   if(!empty($emails) && is_array($emails)) {
			     foreach($emails as $email) {
				   $emBody = str_replace(array('%adminemail%','%siteurl%','%files%','%username%','%$useremail%','%$userid%'),array($email,$siteurl,$files,$user_dn,$user_email,$user_id),$body);
				   $send_Mail = wp_mail( $email, $subject, $emBody, $headers );	
				   if($send_Mail) {
							 echo 'Mail Sent!';
						 } else {
							 echo 'Not Sent!';
						 }
			     }
			   }
		   }		   
	   }
	   /* Slack */
	   public function slack($message) {
		   if(class_exists('wp_file_manager_slack')) {
		   	   $slackdata = get_option('wp_file_manager_slack');
			   if((isset($slackdata['ELFINDER_ENABLE_SLACK']) && !empty($slackdata['ELFINDER_ENABLE_SLACK'])) && $slackdata['ELFINDER_ENABLE_SLACK'] == '1') {
				   $data = array("text" => $message);                                                                    
				   $data_string = 'payload='.wp_json_encode($data);		   
				   $API = (isset($slackdata['slack_app_url']) && !empty($slackdata['slack_app_url'])) ? $slackdata['slack_app_url'] : '';
				   if($API != '') {	
					   $curl = curl_init();
					   curl_setopt($curl, CURLOPT_URL, $API);
					   curl_setopt($curl, CURLOPT_POST, 1);
					   curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // save to returning 1
					   curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
					   $result = curl_exec ($curl); 
					   $datas = json_decode($result,true);
					   curl_close ($curl);
			    }
			  } // ELFINDER_ENABLE_SLACK
		   }
	   }
	   /* Phone Notifications */
	   public function phone($info) {
		   if(class_exists('wp_file_manager_mobile')) {
			   $opt = get_option('wp_file_manager_mobile');
			   if(isset($opt['fm_enable_phone_notifications']) && $opt['fm_enable_phone_notifications'] == '1') {
				   if($this->appToken) {
						$api = 'https://filemanagerpro.io/notify/';
						$str = http_build_query($info);
						$curl = curl_init();
						curl_setopt($curl, CURLOPT_URL, $api);
						curl_setopt($curl, CURLOPT_POST, 1);
						curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // save to returning 1
						curl_setopt($curl, CURLOPT_POSTFIELDS, $str);
						$result = curl_exec ($curl); 
						$data = json_decode($result,true); 
						print_r($data);
						curl_close ($curl);
				   }
			   }
		  }
		 }
		 /* Logs */
		 public function fm_file_action_log($uid, $uname, $action, $files) {
			global $wpdb;
			$tbl = $wpdb->prefix.'fm_file_action_log';
			$save = $wpdb->insert($tbl, array(
				'uid' => $uid, 
				'uname' => $uname,
				'action' => $action,
				'files' => $files,
				'log_date' => date('Y-m-d h:i:s a')
			));			
		 }
	}
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit