403Webshell
Server IP : 46.105.57.169  /  Your IP : 216.73.216.67
Web Server : Apache
System : Linux webm002.cluster120.gra.hosting.ovh.net 6.18.42-ovh-vps-grsec-zfs+ #1 SMP PREEMPT_DYNAMIC Wed Aug 5 15:59:48 CEST 2026 x86_64
User : verseaumee ( 152031)
PHP Version : 8.5.7
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/verseaumee/blueversionx/wp-content/plugins/ninjascanner/lib/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/verseaumee/blueversionx/wp-content/plugins/ninjascanner/lib/file_restore.php
<?php
/*
 +=====================================================================+
 |     _   _ _        _       ____                                     |
 |    | \ | (_)_ __  (_) __ _/ ___|  ___ __ _ _ __  _ __   ___ _ __    |
 |    |  \| | | '_ \ | |/ _` \___ \ / __/ _` | '_ \| '_ \ / _ \ '__|   |
 |    | |\  | | | | || | (_| |___) | (_| (_| | | | | | | |  __/ |      |
 |    |_| \_|_|_| |_|/ |\__,_|____/ \___\__,_|_| |_|_| |_|\___|_|      |
 |                 |__/                                                |
 |                                                                     |
 | (c) NinTechNet ~ https://nintechnet.com/                            |
 +=====================================================================+ // sa+i18n
*/

if (! defined( 'ABSPATH' ) ) { die( 'Forbidden' ); }

if (! file_exists( NSCAN_SNAPSHOT ) ) {
	esc_html_e('Error: Missing NSCAN_SNAPSHOT file.', 'ninjascanner');
	wp_die();
}

$snapshot = unserialize(
	file_get_contents( NSCAN_SNAPSHOT ),
	['allowed_classes' => false ]
);

if ( empty( $snapshot['abspath'] ) ) {
	esc_html_e('Error: Snapshot is corrupted (abspath).', 'ninjascanner');
	wp_die();
}

if ( empty( $snapshot['abspath'][$file]['type'] ) ) {
	esc_html_e('Error: No match found (local file).', 'ninjascanner');
	wp_die();
}

// WordPress core file:
if ( $snapshot['abspath'][$file]['type'] == 'core' ) {

	$version = $snapshot['version'];
	if (! empty( $snapshot['locale'] ) ) {
		$locale = "-{$snapshot['locale']}";
	} else {
		$locale = '';
	}

	// Clean-up the path (order matters):
	$rpath = str_replace( WP_PLUGIN_DIR, 'wp-content/plugins', $file );
	$rpath = str_replace( WP_CONTENT_DIR, 'wp-content', $rpath );
	$rpath = str_replace( ABSPATH, '', $rpath );

	// Check if we have a local copy of the installation package:
	if ( file_exists( NSCAN_CACHEDIR ."/wordpress-{$version}{$locale}.zip" ) ) {
		// Fetch it from the ZIP file:
		$tmp_remote_content = nscan_read_zipped_file(
			NSCAN_CACHEDIR ."/wordpress-{$version}{$locale}.zip",
			"wordpress/{$rpath}"
		);

	// Download it from wordpress.org:
	} else {
		$url = sprintf( NSCAN_SVN_CORE, $version );
		$tmp_remote_content = nscan_download_original( "{$url}/{$rpath}" );
	}

// Themes & plugins:
} else {

	// Plugins:
	if ( $snapshot['abspath'][$file]['type'] == 'plugin' ) {

		// Check if we have a local copy of the ZIP package:

		// Clean-up path:
		$rpath = str_replace(
			WP_PLUGIN_DIR ."/{$snapshot['abspath'][$file]['slug']}/",
			'',
			$file
		);

		// Search in the cache folder (free open-source plugins):
		if ( file_exists( NSCAN_CACHEDIR ."/plugin_{$snapshot['abspath'][$file]['slug']}.{$snapshot['abspath'][$file]['version']}.zip" ) ) {
			// Fetch it from the ZIP file:
			$tmp_remote_content = nscan_read_zipped_file(
				NSCAN_CACHEDIR ."/plugin_{$snapshot['abspath'][$file]['slug']}.{$snapshot['abspath'][$file]['version']}.zip",
				$snapshot['abspath'][$file]['slug'] .'/'. $rpath
			);

		// Or search in the user "/local" folder (premium plugins):
		} elseif ( file_exists( NSCAN_LOCAL ."/{$snapshot['abspath'][$file]['slug']}.{$snapshot['abspath'][$file]['version']}.zip" ) ) {
			// Fetch it from the ZIP file:
			$tmp_remote_content = nscan_read_zipped_file(
				NSCAN_LOCAL ."/{$snapshot['abspath'][$file]['slug']}.{$snapshot['abspath'][$file]['version']}.zip",
				$snapshot['abspath'][$file]['slug'] .'/'. $rpath
			);

		// No local copy, try to download it from wordpress.org:
		} else {
			$url = sprintf(
				NSCAN_SVN_PLUGINS,
				$snapshot['abspath'][$file]['slug'],
				$snapshot['abspath'][$file]['version']
			);
			$tmp_remote_content = nscan_download_original( "{$url}/{$rpath}" );
		}

	// Theme:
	} elseif ( $snapshot['abspath'][$file]['type'] == 'theme' ) {

		// Check if we have a local copy of the ZIP package:

		// Clean-up path:
		$rpath = str_replace(
			WP_CONTENT_DIR ."/themes/{$snapshot['abspath'][$file]['slug']}/",
			'',
			$file
		);

		// Search in the cache folder (free open-source themes):
		if ( file_exists( NSCAN_CACHEDIR ."/theme_{$snapshot['abspath'][$file]['slug']}.{$snapshot['abspath'][$file]['version']}.zip" ) ) {
			// Fetch it from the ZIP file:
			$tmp_remote_content = nscan_read_zipped_file(
				NSCAN_CACHEDIR ."/theme_{$snapshot['abspath'][$file]['slug']}.{$snapshot['abspath'][$file]['version']}.zip",
				$snapshot['abspath'][$file]['slug'] .'/'. $rpath
			);

		// Or search in the user "/local" folder (premium themes):
		} elseif ( file_exists( NSCAN_LOCAL ."/{$snapshot['abspath'][$file]['slug']}.{$snapshot['abspath'][$file]['version']}.zip" ) ) {
			// Fetch it from the ZIP file:
			$tmp_remote_content = nscan_read_zipped_file(
				NSCAN_LOCAL ."/{$snapshot['abspath'][$file]['slug']}.{$snapshot['abspath'][$file]['version']}.zip",
				$snapshot['abspath'][$file]['slug'] .'/'. $rpath
			);

		// No local copy, try to download it from wordpress.org:
		} else {
			$url = sprintf(
				NSCAN_SVN_THEMES,
				$snapshot['abspath'][$file]['slug'],
				$snapshot['abspath'][$file]['version']
			);
			$tmp_remote_content = nscan_download_original( "{$url}/{$rpath}" );
		}

	} else  {
		esc_html_e('Error: No match found (file type).', 'ninjascanner');
		wp_die();
	}
}

// Make sure we have something:
if ( empty( $tmp_remote_content ) ) {
	esc_html_e('Error: Content is empty.', 'ninjascanner');
	wp_die();
}

// Replace current file with new content:
if (! is_writable( $file ) ) {
	esc_html_e('Error: The destination folder is not writable.', 'ninjascanner');
	wp_die();
}
$byte = file_put_contents( $file, $tmp_remote_content );
if ( $byte != strlen( $tmp_remote_content ) ) {
	esc_html_e('Warning: The operation seems to have failed.', 'ninjascanner');
	wp_die();
}

// Unmark the file from our snapshot:
if ( $snapshot['abspath'][$file]['type'] == 'core' ) {
	// Core:
	unset( $snapshot['core_failed_checksum'][$file] );
} elseif ( $snapshot['abspath'][$file]['type'] == 'plugin' ) {
	// Plugin:
	$slug = $snapshot['abspath'][$file]['slug'];
	unset( $snapshot['plugins'][$slug][$rpath] );
} else {
	// Theme:
	$slug = $snapshot['abspath'][$file]['slug'];
	unset( $snapshot['themes'][$slug][$rpath] );
}
// Save the new snapshot:
file_put_contents( NSCAN_SNAPSHOT, serialize( $snapshot ) );

// =====================================================================
// Download the original file from the wordpress.org repo.
// Applies to themes, plugins or core files only.
// (This function exists also in file_compare.php).

function nscan_download_original( $file ) {

	global $wp_version;

	$res = wp_remote_get(
		$file,
		array(
			'timeout' => NSCAN_CURL_TIMEOUT,
			'httpversion' => '1.1' ,
			'user-agent' => 'Mozilla/5.0 (compatible; NinjaScanner/'.
									NSCAN_VERSION .'; WordPress/'. $wp_version . ')',
			'sslverify' => true
		)
	);

	if (! is_wp_error( $res ) ) {

		if ( $res['response']['code'] == 200 ) {
			// Return the file content:
			return $res['body'];

		} else {
			// HTTP error:
			esc_html_e('Error: Cannot download the original file from wordpress.org.', 'ninjascanner');
			wp_die();
		}
	}
	// cURL error:
	esc_html_e('Error: Cannot download the original file from wordpress.org.', 'ninjascanner');
	wp_die();

}

// =====================================================================
// EOF

Youez - 2016 - github.com/yon3zu
LinuXploit