shell bypass 403
UnknownSec Shell
:
/
home
/
innovagencyco
/
www
/
abtest.innovagency.co.za
/
wp-content
/
plugins
/
speedycache
/
main
/ [
drwxr-xr-x
]
upload
mass deface
mass delete
console
info server
name :
util.php
<?php namespace SpeedyCache; if(!defined('ABSPATH')){ die('HACKING ATTEMPT!'); } class Util{ static function sanitize_get($name, $default = ''){ if(empty($_GET[$name])){ return $default; } if(is_array($_GET[$name]) || is_object($_GET[$name])){ return map_deep(wp_unslash($_GET[$name]), 'sanitize_text_field'); } return sanitize_text_field(wp_unslash($_GET[$name])); } static function sanitize_post($name, $default = ''){ if(empty($_POST[$name])){ return $default; } if(is_array($_POST[$name]) || is_object($_POST[$name])){ return map_deep(wp_unslash($_POST[$name]), 'sanitize_text_field'); } return sanitize_text_field(wp_unslash($_POST[$name])); } static function sanitize_request($name, $default = ''){ if(empty($_REQUEST[$name])){ return $default; } if(is_array($_REQUEST[$name]) || is_object($_REQUEST[$name])){ return map_deep(wp_unslash($_REQUEST[$name]), 'sanitize_text_field'); } return sanitize_text_field(wp_unslash($_REQUEST[$name])); } static function sanitize_server($name, $default = ''){ if(empty($_SERVER[$name])){ return $default; } return sanitize_text_field(wp_unslash($_SERVER[$name])); } static function pagespeed_color($score){ // The structure of this array is 0 => [Stroke Color, Background Color, Text Color] $score_color_map = array( 0 => ['#c00', '#c003', '#c00'], // Red 50 => ['#fa3', '#ffa50036', '#fa3'],// Orange 90 => ['#0c6', '#00cc663b', '#080']// Green ); if($score >= 0 && $score < 50){ return $score_color_map[0]; } if($score >= 50 && $score < 90){ return $score_color_map[50]; } return $score_color_map[90]; } static function url_to_path($url){ $url = preg_replace('/\?.*/', '', $url); // Remooving any query string $dir_slug = str_replace(site_url(), '', $url); $file_path = ABSPATH . trim($dir_slug, '/'); return $file_path; } static function path_to_url($path){ $path = wp_normalize_path($path); $abs_path = wp_normalize_path(ABSPATH); $path = str_replace($abs_path, '', $path); $url = site_url() . '/' . $path; return $url; } static function cache_path($loc = ''){ if((defined('WP_CLI') && WP_CLI) || empty($_SERVER['HTTP_HOST'])){ global $blog_id; $url = get_option('home'); if(!empty($blog_id) && is_multisite()){ switch_to_blog($blog_id); $url = get_option('home'); restore_current_blog(); } $url = wp_parse_url($url); $host = $url['host']; return trailingslashit(SPEEDYCACHE_CACHE_DIR . '/'.$host.'/'.$loc); } $host = sanitize_text_field(wp_unslash($_SERVER['HTTP_HOST'])); return trailingslashit(SPEEDYCACHE_CACHE_DIR . '/'.$host.'/'.$loc); } // Creates a config file based on the URL of the website static function set_config_file(){ global $speedycache; $export_config['settings']['status'] = !empty($speedycache->options['status']); $export_config['settings']['gzip'] = !empty($speedycache->options['gzip']); $export_config['settings']['logged_in_user'] = !empty($speedycache->options['logged_in_user']); $export_config['settings']['mobile_theme'] = !empty($speedycache->options['mobile_theme']); $export_config['settings']['mobile'] = !empty($speedycache->options['mobile']); //$export_config['user_agents'] = speedycache_get_excluded_useragent(); $export_config['excludes'] = get_option('speedycache_exclude', []); $config = var_export($export_config, true); $url = get_site_url(); $file = parse_url(untrailingslashit($url)); $file['path'] = (!empty($file['path'])) ? str_replace( '/', '.', untrailingslashit($file['path'])) : ''; $config_file_path = WP_CONTENT_DIR .'/speedycache-config/'. strtolower($file['host']) . $file['path'] . '.php'; if(!file_exists(WP_CONTENT_DIR .'/speedycache-config/')){ mkdir(WP_CONTENT_DIR .'/speedycache-config/', 0755, true); } $config_temp = file_get_contents(SPEEDYCACHE_DIR . '/assets/config-template.php'); $config_content = str_replace("'REPLACE_CONFIG'", $config, $config_temp); file_put_contents($config_file_path, $config_content); } static function dir_size($dir){ $size = 0; foreach(glob(rtrim($dir, '/').'/*', GLOB_NOSORT) as $file){ $size += is_file($file) ? filesize($file) : self::dir_size($file); } return $size; } static function cache_lifespan(){ global $speedycache; $schedule_time = 0; if(empty($speedycache->options['purge_interval'])){ return $schedule_time; } if(!empty($speedycache->options['purge_enable_exact_time']) && !empty($speedycache->options['purge_exact_time'])){ $schedule_time = DAY_IN_SECONDS; } elseif($speedycache->options['purge_interval_unit'] == 'hours'){ $schedule_time = HOUR_IN_SECONDS * $speedycache->options['purge_interval']; } elseif($speedycache->options['purge_interval_unit'] == 'days'){ $schedule_time = DAY_IN_SECONDS * $speedycache->options['purge_interval']; } return (int) $schedule_time; } static function lifespan_cron(){ global $speedycache; if(empty($speedycache->options['purge_interval'])){ return; } if(!empty(wp_next_scheduled('speedycache_purge_cache'))){ return; } if(!empty($speedycache->options['purge_enable_exact_time']) && !empty($speedycache->options['purge_exact_time'])){ // Getting the exact time of the user's timezone by using the offset and strtotime return gtm time. $future_timestamp = strtotime('today '.$speedycache->options['purge_exact_time']); $offset = get_option('gmt_offset') * HOUR_IN_SECONDS; $current_time = time() - $offset; $future_timestamp -= $offset; if(time() > $future_timestamp){ $future_timestamp = strtotime('tomorrow '.$speedycache->options['purge_exact_time']); $future_timestamp -= $offset; } $schedule_time = $future_timestamp - time(); } elseif($speedycache->options['purge_interval_unit'] == 'hours'){ $schedule_time = HOUR_IN_SECONDS * $speedycache->options['purge_interval']; } elseif($speedycache->options['purge_interval_unit'] == 'days'){ $schedule_time = DAY_IN_SECONDS * $speedycache->options['purge_interval']; } wp_schedule_event(time() + $schedule_time, 'speedycache_expired_cache_schedule', 'speedycache_purge_cache'); } static function preload_cron(){ global $speedycache; if(empty($speedycache->options['preload_interval']) || empty($speedycache->options['preload'])){ return; } if(wp_next_scheduled('speedycache_preload')){ return; } $schedule_time = HOUR_IN_SECONDS * (int) $speedycache->options['preload_interval']; wp_schedule_event(time() + $schedule_time, 'speedycache_preload_cache_schedule', 'speedycache_preload'); } static function custom_expiry_cron($schedules){ $cache_interval = self::cache_lifespan(); if(empty($cache_interval)){ return $schedules; } $schedules['speedycache_expired_cache_schedule'] = [ 'interval' => $cache_interval, 'display' => __('SpeedyCache Cache Lifespan cron', 'speedycache'), ]; return $schedules; } static function custom_preload_cron($schedules){ global $speedycache; if(empty($speedycache->options['preload_interval'])){ return $schedules; } $cache_interval = $speedycache->options['preload_interval'] * HOUR_IN_SECONDS; if(empty($cache_interval)){ return $schedules; } $schedules['speedycache_preload_cache_schedule'] = [ 'interval' => $cache_interval, 'display' => __('SpeedyCache Cache Preload cron', 'speedycache'), ]; return $schedules; } // Deletes binaries static function delete_cwebp(){ $binary_dir = wp_upload_dir()['basedir'] .'/speedycache-binary'; if(!file_exists($binary_dir)){ return; } $binaries = @scandir($binary_dir); $binaries = array_diff($binaries, ['.', '..']); if(empty($binaries)){ @rmdir($binary_dir); return; } foreach($binaries as $binary){ if(file_exists($binary_dir.'/'.$binary)){ @unlink($binary_dir.'/'.$binary); } } } }
© 2025 UnknownSec