[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.116.87.144: ~ $
<?php
/**
 * Error Protection API: WP_Recovery_Mode_Cookie_Service class
 *
 * @package WordPress
 * @since 5.2.0
 */

/**
 * Core class used to set, validate, and clear cookies that identify a Recovery Mode session.
 *
 * @since 5.2.0
 */
#[AllowDynamicProperties]
final class WP_Recovery_Mode_Cookie_Service {

	/**
	 * Checks whether the recovery mode cookie is set.
	 *
	 * @since 5.2.0
	 *
	 * @return bool True if the cookie is set, false otherwise.
	 */
	public function is_cookie_set() {
		return ! empty( $_COOKIE[ RECOVERY_MODE_COOKIE ] );
	}

	/**
	 * Sets the recovery mode cookie.
	 *
	 * This must be immediately followed by exiting the request.
	 *
	 * @since 5.2.0
	 */
	public function set_cookie() {

		$value = $this->generate_cookie();

		/**
		 * Filters the length of time a Recovery Mode cookie is valid for.
		 *
		 * @since 5.2.0
		 *
		 * @param int $length Length in seconds.
		 */
		$length = apply_filters( 'recovery_mode_cookie_length', WEEK_IN_SECONDS );

		$expire = time() + $length;

		setcookie( RECOVERY_MODE_COOKIE, $value, $expire, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), true );

		if ( COOKIEPATH !== SITECOOKIEPATH ) {
			setcookie( RECOVERY_MODE_COOKIE, $value, $expire, SITECOOKIEPATH, COOKIE_DOMAIN, is_ssl(), true );
		}
	}

	/**
	 * Clears the recovery mode cookie.
	 *
	 * @since 5.2.0
	 */
	public function clear_cookie() {
		setcookie( RECOVERY_MODE_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
		setcookie( RECOVERY_MODE_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
	}

	/**
	 * Validates the recovery mode cookie.
	 *
	 * @since 5.2.0
	 *
	 * @param string $cookie Optionally specify the cookie string.
	 *                       If omitted, it will be retrieved from the super global.
	 * @return true|WP_Error True on success, error object on failure.
	 */
	public function validate_cookie( $cookie = '' ) {

		if ( ! $cookie ) {
			if ( empty( $_COOKIE[ RECOVERY_MODE_COOKIE ] ) ) {
				return new WP_Error( 'no_cookie', __( 'No cookie present.' ) );
			}

			$cookie = $_COOKIE[ RECOVERY_MODE_COOKIE ];
		}

		$parts = $this->parse_cookie( $cookie );

		if ( is_wp_error( $parts ) ) {
			return $parts;
		}

		list( , $created_at, $random, $signature ) = $parts;

		if ( ! ctype_digit( $created_at ) ) {
			return new WP_Error( 'invalid_created_at', __( 'Invalid cookie format.' ) );
		}

		/** This filter is documented in wp-includes/class-wp-recovery-mode-cookie-service.php */
		$length = apply_filters( 'recovery_mode_cookie_length', WEEK_IN_SECONDS );

		if ( time() > $created_at + $length ) {
			return new WP_Error( 'expired', __( 'Cookie expired.' ) );
		}

		$to_sign = sprintf( 'recovery_mode|%s|%s', $created_at, $random );
		$hashed  = $this->recovery_mode_hash( $to_sign );

		if ( ! hash_equals( $signature, $hashed ) ) {
			return new WP_Error( 'signature_mismatch', __( 'Invalid cookie.' ) );
		}

		return true;
	}

	/**
	 * Gets the session identifier from the cookie.
	 *
	 * The cookie should be validated before calling this API.
	 *
	 * @since 5.2.0
	 *
	 * @param string $cookie Optionally specify the cookie string.
	 *                       If omitted, it will be retrieved from the super global.
	 * @return string|WP_Error Session ID on success, or error object on failure.
	 */
	public function get_session_id_from_cookie( $cookie = '' ) {
		if ( ! $cookie ) {
			if ( empty( $_COOKIE[ RECOVERY_MODE_COOKIE ] ) ) {
				return new WP_Error( 'no_cookie', __( 'No cookie present.' ) );
			}

			$cookie = $_COOKIE[ RECOVERY_MODE_COOKIE ];
		}

		$parts = $this->parse_cookie( $cookie );
		if ( is_wp_error( $parts ) ) {
			return $parts;
		}

		list( , , $random ) = $parts;

		return sha1( $random );
	}

	/**
	 * Parses the cookie into its four parts.
	 *
	 * @since 5.2.0
	 *
	 * @param string $cookie Cookie content.
	 * @return array|WP_Error Cookie parts array, or error object on failure.
	 */
	private function parse_cookie( $cookie ) {
		$cookie = base64_decode( $cookie );
		$parts  = explode( '|', $cookie );

		if ( 4 !== count( $parts ) ) {
			return new WP_Error( 'invalid_format', __( 'Invalid cookie format.' ) );
		}

		return $parts;
	}

	/**
	 * Generates the recovery mode cookie value.
	 *
	 * The cookie is a base64 encoded string with the following format:
	 *
	 * recovery_mode|iat|rand|signature
	 *
	 * Where "recovery_mode" is a constant string,
	 * iat is the time the cookie was generated at,
	 * rand is a randomly generated password that is also used as a session identifier
	 * and signature is an hmac of the preceding 3 parts.
	 *
	 * @since 5.2.0
	 *
	 * @return string Generated cookie content.
	 */
	private function generate_cookie() {
		$to_sign = sprintf( 'recovery_mode|%s|%s', time(), wp_generate_password( 20, false ) );
		$signed  = $this->recovery_mode_hash( $to_sign );

		return base64_encode( sprintf( '%s|%s', $to_sign, $signed ) );
	}

	/**
	 * Gets a form of `wp_hash()` specific to Recovery Mode.
	 *
	 * We cannot use `wp_hash()` because it is defined in `pluggable.php` which is not loaded until after plugins are loaded,
	 * which is too late to verify the recovery mode cookie.
	 *
	 * This tries to use the `AUTH` salts first, but if they aren't valid specific salts will be generated and stored.
	 *
	 * @since 5.2.0
	 *
	 * @param string $data Data to hash.
	 * @return string|false The hashed $data, or false on failure.
	 */
	private function recovery_mode_hash( $data ) {
		$default_keys = array_unique(
			array(
				'put your unique phrase here',
				/*
				 * translators: This string should only be translated if wp-config-sample.php is localized.
				 * You can check the localized release package or
				 * https://i18n.svn.wordpress.org/<locale code>/branches/<wp version>/dist/wp-config-sample.php
				 */
				__( 'put your unique phrase here' ),
			)
		);

		if ( ! defined( 'AUTH_KEY' ) || in_array( AUTH_KEY, $default_keys, true ) ) {
			$auth_key = get_site_option( 'recovery_mode_auth_key' );

			if ( ! $auth_key ) {
				if ( ! function_exists( 'wp_generate_password' ) ) {
					require_once ABSPATH . WPINC . '/pluggable.php';
				}

				$auth_key = wp_generate_password( 64, true, true );
				update_site_option( 'recovery_mode_auth_key', $auth_key );
			}
		} else {
			$auth_key = AUTH_KEY;
		}

		if ( ! defined( 'AUTH_SALT' ) || in_array( AUTH_SALT, $default_keys, true ) || AUTH_SALT === $auth_key ) {
			$auth_salt = get_site_option( 'recovery_mode_auth_salt' );

			if ( ! $auth_salt ) {
				if ( ! function_exists( 'wp_generate_password' ) ) {
					require_once ABSPATH . WPINC . '/pluggable.php';
				}

				$auth_salt = wp_generate_password( 64, true, true );
				update_site_option( 'recovery_mode_auth_salt', $auth_salt );
			}
		} else {
			$auth_salt = AUTH_SALT;
		}

		$secret = $auth_key . $auth_salt;

		return hash_hmac( 'sha1', $data, $secret );
	}
}

Filemanager

Name Type Size Permission Actions
ID3 Folder 0755
IXR Folder 0755
PHPMailer Folder 0755
Requests Folder 0755
SimplePie Folder 0755
Text Folder 0755
assets Folder 0755
block-bindings Folder 0755
block-patterns Folder 0755
block-supports Folder 0755
blocks Folder 0755
certificates Folder 0755
css Folder 0755
customize Folder 0755
fonts Folder 0755
html-api Folder 0755
images Folder 0755
interactivity-api Folder 0755
js Folder 0755
l10n Folder 0755
php-compat Folder 0755
pomo Folder 0755
rest-api Folder 0755
sitemaps Folder 0755
sodium_compat Folder 0755
style-engine Folder 0755
theme-compat Folder 0755
widgets Folder 0755
admin-bar.php File 36.23 KB 0644
atomlib.php File 11.79 KB 0644
author-template.php File 18.51 KB 0644
block-bindings.php File 5.46 KB 0644
block-editor.php File 27.68 KB 0644
block-i18n.json File 316 B 0644
block-patterns.php File 12.81 KB 0644
block-template-utils.php File 58.74 KB 0644
block-template.php File 13.81 KB 0644
blocks.php File 102.36 KB 0644
bookmark-template.php File 12.64 KB 0644
bookmark.php File 15.07 KB 0644
cache-compat.php File 5.83 KB 0644
cache.php File 13.16 KB 0644
canonical.php File 33.71 KB 0644
capabilities.php File 41.72 KB 0644
category-template.php File 55.67 KB 0644
category.php File 12.41 KB 0644
class-IXR.php File 2.48 KB 0644
class-avif-info.php File 28.92 KB 0644
class-feed.php File 539 B 0644
class-http.php File 367 B 0644
class-json.php File 42.66 KB 0644
class-oembed.php File 401 B 0644
class-phpass.php File 6.61 KB 0644
class-phpmailer.php File 664 B 0644
class-pop3.php File 20.68 KB 0644
class-requests.php File 2.18 KB 0644
class-simplepie.php File 453 B 0644
class-smtp.php File 457 B 0644
class-snoopy.php File 36.83 KB 0644
class-walker-category-dropdown.php File 2.41 KB 0644
class-walker-category.php File 8.28 KB 0644
class-walker-comment.php File 13.89 KB 0644
class-walker-nav-menu.php File 11.51 KB 0644
class-walker-page-dropdown.php File 2.65 KB 0644
class-walker-page.php File 7.43 KB 0644
class-wp-admin-bar.php File 17.46 KB 0644
class-wp-ajax-response.php File 5.14 KB 0644
class-wp-application-passwords.php File 15.25 KB 0644
class-wp-block-bindings-registry.php File 8.26 KB 0644
class-wp-block-bindings-source.php File 2.92 KB 0644
class-wp-block-editor-context.php File 1.32 KB 0644
class-wp-block-list.php File 4.65 KB 0644
class-wp-block-metadata-registry.php File 8.16 KB 0644
class-wp-block-parser-block.php File 2.5 KB 0644
class-wp-block-parser-frame.php File 1.97 KB 0644
class-wp-block-parser.php File 11.26 KB 0644
class-wp-block-pattern-categories-registry.php File 5.25 KB 0644
class-wp-block-patterns-registry.php File 10.53 KB 0644
class-wp-block-styles-registry.php File 6.12 KB 0644
class-wp-block-supports.php File 5.48 KB 0644
class-wp-block-template.php File 1.99 KB 0644
class-wp-block-templates-registry.php File 7.06 KB 0644
class-wp-block-type-registry.php File 4.9 KB 0644
class-wp-block-type.php File 16.86 KB 0644
class-wp-block.php File 19.96 KB 0644
class-wp-classic-to-block-menu-converter.php File 3.99 KB 0644
class-wp-comment-query.php File 47.26 KB 0644
class-wp-comment.php File 9.15 KB 0644
class-wp-customize-control.php File 25.13 KB 0644
class-wp-customize-manager.php File 197.79 KB 0644
class-wp-customize-nav-menus.php File 55.84 KB 0644
class-wp-customize-panel.php File 10.39 KB 0644
class-wp-customize-section.php File 10.95 KB 0644
class-wp-customize-setting.php File 29.19 KB 0644
class-wp-customize-widgets.php File 70.47 KB 0644
class-wp-date-query.php File 34.89 KB 0644
class-wp-dependencies.php File 14.78 KB 0644
class-wp-dependency.php File 2.57 KB 0644
class-wp-duotone.php File 39.83 KB 0644
class-wp-editor.php File 70.64 KB 0644
class-wp-embed.php File 15.62 KB 0644
class-wp-error.php File 7.33 KB 0644
class-wp-exception.php File 253 B 0644
class-wp-fatal-error-handler.php File 7.96 KB 0644
class-wp-feed-cache-transient.php File 3.1 KB 0644
class-wp-feed-cache.php File 969 B 0644
class-wp-hook.php File 15.63 KB 0644
class-wp-http-cookie.php File 7.22 KB 0644
class-wp-http-curl.php File 12.25 KB 0644
class-wp-http-encoding.php File 6.53 KB 0644
class-wp-http-ixr-client.php File 3.42 KB 0644
class-wp-http-proxy.php File 5.84 KB 0644
class-wp-http-requests-hooks.php File 1.97 KB 0644
class-wp-http-requests-response.php File 4.3 KB 0644
class-wp-http-response.php File 2.91 KB 0644
class-wp-http-streams.php File 16.46 KB 0644
class-wp-http.php File 40.53 KB 0644
class-wp-image-editor-gd.php File 19.42 KB 0644
class-wp-image-editor-imagick.php File 31.9 KB 0644
class-wp-image-editor.php File 16.54 KB 0644
class-wp-list-util.php File 7.27 KB 0644
class-wp-locale-switcher.php File 6.47 KB 0644
class-wp-locale.php File 15.73 KB 0644
class-wp-matchesmapregex.php File 1.79 KB 0644
class-wp-meta-query.php File 29.82 KB 0644
class-wp-metadata-lazyloader.php File 6.67 KB 0644
class-wp-navigation-fallback.php File 9 KB 0644
class-wp-network-query.php File 19.39 KB 0644
class-wp-network.php File 12.01 KB 0644
class-wp-object-cache.php File 17.11 KB 0644
class-wp-oembed-controller.php File 6.74 KB 0644
class-wp-oembed.php File 30.74 KB 0644
class-wp-paused-extensions-storage.php File 4.99 KB 0644
class-wp-plugin-dependencies.php File 24.73 KB 0644
class-wp-post-type.php File 29.63 KB 0644
class-wp-post.php File 6.33 KB 0644
class-wp-query.php File 150.47 KB 0644
class-wp-recovery-mode-cookie-service.php File 6.72 KB 0644
class-wp-recovery-mode-email-service.php File 10.92 KB 0644
class-wp-recovery-mode-key-service.php File 4.5 KB 0644
class-wp-recovery-mode-link-service.php File 3.38 KB 0644
class-wp-recovery-mode.php File 11.17 KB 0644
class-wp-rewrite.php File 62.2 KB 0644
class-wp-role.php File 2.46 KB 0644
class-wp-roles.php File 8.38 KB 0644
class-wp-script-modules.php File 18.91 KB 0644
class-wp-scripts.php File 27.68 KB 0644
class-wp-session-tokens.php File 7.28 KB 0644
class-wp-simplepie-file.php File 3.33 KB 0644
class-wp-simplepie-sanitize-kses.php File 1.79 KB 0644
class-wp-site-query.php File 30.88 KB 0644
class-wp-site.php File 7.28 KB 0644
class-wp-styles.php File 10.75 KB 0644
class-wp-tax-query.php File 19.1 KB 0644
class-wp-taxonomy.php File 18.13 KB 0644
class-wp-term-query.php File 39.91 KB 0644
class-wp-term.php File 5.17 KB 0644
class-wp-text-diff-renderer-inline.php File 979 B 0644
class-wp-text-diff-renderer-table.php File 18.37 KB 0644
class-wp-textdomain-registry.php File 10.24 KB 0644
class-wp-theme-json-data.php File 1.77 KB 0644
class-wp-theme-json-resolver.php File 34.97 KB 0644
class-wp-theme-json-schema.php File 7.19 KB 0644
class-wp-theme-json.php File 157.01 KB 0644
class-wp-theme.php File 63.88 KB 0644
class-wp-token-map.php File 27.95 KB 0644
class-wp-user-meta-session-tokens.php File 2.92 KB 0644
class-wp-user-query.php File 42.63 KB 0644
class-wp-user-request.php File 2.17 KB 0644
class-wp-user.php File 22.29 KB 0644
class-wp-walker.php File 13.01 KB 0644
class-wp-widget-factory.php File 3.27 KB 0644
class-wp-widget.php File 17.99 KB 0644
class-wp-xmlrpc-server.php File 209.91 KB 0644
class-wp.php File 25.51 KB 0644
class-wpdb.php File 115.61 KB 0644
class.wp-dependencies.php File 373 B 0644
class.wp-scripts.php File 343 B 0644
class.wp-styles.php File 338 B 0644
comment-template.php File 100.36 KB 0644
comment.php File 127.22 KB 0644
compat.php File 16.58 KB 0644
cron.php File 40.62 KB 0644
date.php File 400 B 0644
default-constants.php File 11.1 KB 0644
default-filters.php File 34.85 KB 0644
default-widgets.php File 2.17 KB 0644
deprecated.php File 185.67 KB 0644
embed-template.php File 338 B 0644
embed.php File 37.02 KB 0644
error-protection.php File 4.02 KB 0644
error_log File 33.07 KB 0644
feed-atom-comments.php File 5.38 KB 0644
feed-atom.php File 2.98 KB 0644
feed-rdf.php File 2.61 KB 0644
feed-rss.php File 1.16 KB 0644
feed-rss2-comments.php File 4.04 KB 0644
feed-rss2.php File 3.71 KB 0644
feed.php File 22.86 KB 0644
fonts.php File 9.52 KB 0644
formatting.php File 327.37 KB 0644
functions.php File 276.53 KB 0644
functions.wp-scripts.php File 14.22 KB 0644
functions.wp-styles.php File 8.38 KB 0644
general-template.php File 165.52 KB 0644
global-styles-and-settings.php File 20.71 KB 0644
http.php File 24.72 KB 0644
https-detection.php File 5.53 KB 0644
https-migration.php File 4.63 KB 0644
kses.php File 72.66 KB 0644
l10n.php File 66.81 KB 0644
link-template.php File 154.01 KB 0644
load.php File 54.35 KB 0644
locale.php File 162 B 0644
media-template.php File 61.57 KB 0644
media.php File 213.3 KB 0644
meta.php File 62.9 KB 0644
ms-blogs.php File 25.17 KB 0644
ms-default-constants.php File 4.81 KB 0644
ms-default-filters.php File 6.48 KB 0644
ms-deprecated.php File 21.25 KB 0644
ms-files.php File 2.65 KB 0644
ms-functions.php File 89.11 KB 0644
ms-load.php File 19.42 KB 0644
ms-network.php File 3.69 KB 0644
ms-settings.php File 4.03 KB 0644
ms-site.php File 39.54 KB 0644
nav-menu-template.php File 25.31 KB 0644
nav-menu.php File 43.33 KB 0644
option.php File 99.37 KB 0644
pluggable-deprecated.php File 6.12 KB 0644
pluggable.php File 113.25 KB 0644
plugin.php File 34.63 KB 0644
post-formats.php File 6.94 KB 0644
post-template.php File 65.31 KB 0644
post-thumbnail-template.php File 10.57 KB 0644
post.php File 283.1 KB 0644
query.php File 36.17 KB 0644
registration-functions.php File 200 B 0644
registration.php File 200 B 0644
rest-api.php File 97.26 KB 0644
revision.php File 30.17 KB 0644
rewrite.php File 19.08 KB 0644
robots-template.php File 5.06 KB 0644
rss-functions.php File 255 B 0644
rss.php File 22.57 KB 0644
script-loader.php File 127.52 KB 0644
script-modules.php File 7.53 KB 0644
session.php File 258 B 0644
shortcodes.php File 23.49 KB 0644
sitemaps.php File 3.16 KB 0644
spl-autoload-compat.php File 441 B 0644
style-engine.php File 7.39 KB 0644
taxonomy.php File 171.33 KB 0644
template-canvas.php File 544 B 0644
template-loader.php File 2.94 KB 0644
template.php File 23.59 KB 0644
theme-i18n.json File 1.26 KB 0644
theme-previews.php File 2.77 KB 0644
theme-templates.php File 6.08 KB 0644
theme.json File 8.5 KB 0644
theme.php File 130.84 KB 0644
update.php File 35.93 KB 0644
user.php File 170.32 KB 0644
vars.php File 6.34 KB 0644
version.php File 931 B 0644
widgets.php File 69.03 KB 0644
wp-db.php File 445 B 0644
wp-diff.php File 726 B 0644