shell bypass 403
UnknownSec Shell
:
/
home
/
innovagencyco
/
www
/
abtest.innovagency.co.za
/
wp-content
/
plugins
/
speedycache-pro
/ [
drwxr-xr-x
]
upload
mass deface
mass delete
console
info server
name :
functions.php
<?php // Are we being accessed directly ? if(!defined('ABSPATH')) { exit('Hacking Attempt !'); } // Is called when the ADMIN enables the plugin function speedycache_pro_activate(){ global $speedycache; if(empty($speedycache)){ $speedycache = new \SpeedyCache(); } $speedycache->options = get_option('speedycache_options', []); $speedycache->options['minify_html'] = true; $speedycache->options['minify_js'] = true; $speedycache->options['render_blocking'] = true; update_option('speedycache_options', $speedycache->options); update_option('speedycache_pro_version', SPEEDYCACHE_PRO_VERSION); } // Load license data function speedycache_pro_load_license($parent = 0){ global $speedycache; // Load license if(!empty($parent)){ $license_field = 'softaculous_pro_license'; $license_api_url = 'https://a.softaculous.com/softwp/'; }else{ $license_field = 'speedycache_license'; $license_api_url = SPEEDYCACHE_API; } // Load license $speedycache->license = get_option($license_field, []); if(empty($speedycache->license['last_update'])){ $speedycache->license['last_update'] = time() - 86600; } // Update license details as well if(!empty($speedycache->license) && !empty($speedycache->license['license']) && (time() - @$speedycache->license['last_update']) >= 86400){ $resp = wp_remote_get($license_api_url.'license.php?license='.$speedycache->license['license'].'&url='.rawurlencode(site_url())); //Did we get a response ? if(is_array($resp)){ $tosave = json_decode($resp['body'], true); //Is it the license ? if(!empty($tosave['license'])){ $tosave['last_update'] = time(); update_option($license_field, $tosave, false); } } } // If the license is Free or Expired check for Softaculous Pro license if(empty($speedycache->license) || empty($speedycache->license['active'])){ if(function_exists('softaculous_pro_load_license')){ $softaculous_license = softaculous_pro_load_license(); if(!empty($softaculous_license['license']) && (!empty($softaculous_license['active']) || empty($speedycache->license['license'])) ){ $speedycache->license = $softaculous_license; } }elseif(empty($parent)){ $speedycache->license = get_option('softaculous_pro_license', []); if(!empty($speedycache->license)){ speedycache_pro_load_license(1); } } } } // Add our license key if ANY function speedycache_pro_updater_filter_args($queryArgs) { global $speedycache; if ( !empty($speedycache->license['license']) ) { $queryArgs['license'] = $speedycache->license['license']; } $queryArgs['url'] = rawurlencode(site_url()); return $queryArgs; } // Handle the Check for update link and ask to install license key function speedycache_pro_updater_check_link($final_link){ global $speedycache; if(empty($speedycache->license['license'])){ return '<a href="'.admin_url('admin.php?page=speedycache_license').'">Install SpeedyCache Pro License Key</a>'; } return $final_link; } function speedycache_pro_is_network_active($pluign){ $is_network_wide = false; // Handling network site if(!is_multisite()){ return $is_network_wide; } $_tmp_plugins = get_site_option('active_sitewide_plugins'); if(!empty($_tmp_plugins) && preg_grep('/.*\/'.$pluign.'\.php$/', array_keys($_tmp_plugins))){ $is_network_wide = true; } return $is_network_wide; } // Prevent update of SpeedyCache free function speedycache_pro_get_free_version_num(){ if(defined('SPEEDYCACHE_VERSION')){ return SPEEDYCACHE_VERSION; } // In case of SpeedyCache deactive return speedycache_pro_file_get_version_num('speedycache/speedycache.php'); } // Prevent update of SpeedyCache free function speedycache_pro_file_get_version_num($plugin){ // In case of SpeedyCache deactive include_once(ABSPATH . 'wp-admin/includes/plugin.php'); $plugin_data = get_plugin_data(WP_PLUGIN_DIR . '/'.$plugin); if(empty($plugin_data)){ return false; } return $plugin_data['Version']; } // Prevent update of SpeedyCache free function speedycache_pro_disable_manual_update_for_plugin($transient){ $plugin = 'speedycache/speedycache.php'; // Is update available? if(!isset($transient->response) || !isset($transient->response[$plugin])){ return $transient; } $free_version = speedycache_pro_get_free_version_num(); $pro_version = SPEEDYCACHE_PRO_VERSION; if(!empty($GLOBALS['speedycache_pro_is_upgraded'])){ $pro_version = speedycache_pro_file_get_version_num('speedycache-pro/speedycache-pro.php'); } // Update the SpeedyCache version to the equivalent of Pro version if(!empty($pro_version) && version_compare($free_version, $pro_version, '<')){ $transient->response[$plugin]->new_version = $pro_version; $transient->response[$plugin]->package = 'https://downloads.wordpress.org/plugin/speedycache.'.$pro_version.'.zip'; }else{ unset($transient->response[$plugin]); } return $transient; } // Auto update free version after update pro version function speedycache_pro_update_free_after_pro($upgrader_object, $options){ // Check if the action is an update for the plugins if($options['action'] != 'update' || $options['type'] != 'plugin'){ return; } // Define the slugs for the free and pro plugins $free_slug = 'speedycache/speedycache.php'; $pro_slug = 'speedycache-pro/speedycache-pro.php'; // Check if the pro plugin is in the list of updated plugins if( (isset($options['plugins']) && in_array($pro_slug, $options['plugins']) && !in_array($free_slug, $options['plugins'])) || (isset($options['plugin']) && $pro_slug == $options['plugin']) ){ // Trigger the update for the free plugin $current_version = speedycache_pro_get_free_version_num(); if(empty($current_version)){ return; } $GLOBALS['speedycache_pro_is_upgraded'] = true; // This will set the 'update_plugins' transient again wp_update_plugins(); // Check for updates for the free plugin $update_plugins = get_site_transient('update_plugins'); if(empty($update_plugins) || !isset($update_plugins->response[$free_slug]) || version_compare($update_plugins->response[$free_slug]->new_version, $current_version, '<=')){ return; } require_once(ABSPATH . 'wp-admin/includes/plugin.php'); require_once(ABSPATH . 'wp-admin/includes/class-wp-upgrader.php'); $skin = wp_doing_ajax()? new WP_Ajax_Upgrader_Skin() : null; $upgrader = new Plugin_Upgrader($skin); $upgraded = $upgrader->upgrade($free_slug); if(!is_wp_error($upgraded) && $upgraded){ // Re-active free plugins if( file_exists( WP_PLUGIN_DIR . '/'. $free_slug ) && is_plugin_inactive($free_slug) ){ activate_plugin($free_slug); // TODO for network } // Re-active pro plugins if( file_exists( WP_PLUGIN_DIR . '/'. $pro_slug ) && is_plugin_inactive($pro_slug) ){ activate_plugin($pro_slug); // TODO for network } } } } // Looks if SpeedyCache just got updated function speedycache_pro_update_check(){ $sql = array(); $current_version = get_option('speedycache_pro_version'); $version = (int) str_replace('.', '', $current_version); // No update required if($current_version == SPEEDYCACHE_PRO_VERSION){ return true; } // If the user was using SpeedyCache Pro before seperation // then we need to clear the cache as we have updated the location of assets of the Pro version. if(empty($current_version) || (!empty($current_version) && version_compare($current_version, '1.2.0', '<'))){ $free_version = get_option('speedycache_version'); if(!empty($free_version)){ $desk_cache = glob(WP_CONTENT_DIR . '/cache/speedycache/'. sanitize_text_field($_SERVER['HTTP_HOST']) .'/all/*', GLOB_ONLYDIR); $mobile_cache = glob(WP_CONTENT_DIR . '/cache/speedycache/'. sanitize_text_field($_SERVER['HTTP_HOST']) .'/mobile-cache/*', GLOB_ONLYDIR); $deletable_dir = []; if(!empty($desk_cache)){ $deletable_dir = $desk_cache; } if(!empty($mobile_cache)){ $deletable_dir = array_merge($mobile_cache, $deletable_dir); } if(!empty($deletable_dir)){ global $wp_filesystem; include_once(ABSPATH . 'wp-admin/includes/file.php'); WP_Filesystem(); foreach($deletable_dir as $dir){ if(method_exists($wp_filesystem, 'delete')){ $wp_filesystem->delete($dir, true); } } } } speedycache_pro_activate(); } $is_network_wide = speedycache_pro_is_network_active('speedycache-pro'); if($is_network_wide){ $free_ins = get_site_option('speedycache_free_installed'); }else{ $free_ins = get_option('speedycache_free_installed'); } // If plugin runing reached here it means SpeedyCache free installed if(empty($free_ins)){ if($is_network_wide){ update_site_option('speedycache_free_installed', time()); }else{ update_option('speedycache_free_installed', time()); } } // Re-init NAG dismiss expire time update_option('speedycache_pro_older_pro_version_nag', time()); update_option('speedycache_pro_older_free_version_nag', time()); // Save the new Version update_option('speedycache_pro_version', SPEEDYCACHE_PRO_VERSION); } function speedycache_pro_api_url($main_server = 0, $suffix = 'speedycache'){ global $speedycache; $r = array( 'https://s0.softaculous.com/a/softwp/', 'https://s1.softaculous.com/a/softwp/', 'https://s2.softaculous.com/a/softwp/', 'https://s3.softaculous.com/a/softwp/', 'https://s4.softaculous.com/a/softwp/', 'https://s5.softaculous.com/a/softwp/', 'https://s7.softaculous.com/a/softwp/', 'https://s8.softaculous.com/a/softwp/' ); $mirror = $r[array_rand($r)]; // If the license is newly issued, we need to fetch from API only // This is to give time to the mirror server to replicate the data. if(!empty($main_server) || empty($speedycache->license['last_edit']) || (!empty($speedycache->license['last_edit']) && (time() - 3600) < $speedycache->license['last_edit']) ){ $mirror = SPEEDYCACHE_API; } if(!empty($suffix)){ $mirror = str_replace('/softwp', '/'.$suffix, $mirror); } return $mirror; }
© 2024 UnknownSec