[ Avaa Bypassed ]




Upload:

Command:

www-data@3.144.124.77: ~ $
<?php
/**
 * Cache Model
 *
 * @file  The Cache file
 * @package HMWP/CacheModel
 * @since 5.0.0
 */
defined('ABSPATH') || die('Cheatin\' uh?');

class HMWP_Models_Cache
{

    protected $_replace = array();
    protected $_cachepath = '';
    protected $chmod = 644;

    public function __construct()
    {
        $this->setCachePath(WP_CONTENT_DIR . '/cache/');

    }

    /**
     * Set the Cache Path
     *
     * @param $path
     */
    public function setCachePath( $path )
    {
        $this->_cachepath = $path;
    }

    /**
     * Get the cache path
     *
     * @return string
     */
    public function getCachePath()
    {

        //Initialize WordPress Filesystem
        $wp_filesystem = HMWP_Classes_ObjController::initFilesystem();

        //Get the website cache path
        $path = $this->_cachepath;

        if (HMWP_Classes_Tools::isMultisites() ) {
            if ($wp_filesystem->is_dir($path . get_current_blog_id() . '/') ) {
                $path .= get_current_blog_id() . '/';
            }
        }

        if (!$wp_filesystem->is_dir($path) ) {
            return false;
        }

        return $path;
    }

    /**
     * Build the redirects array
     *
     * @throws Exception
     */
    public function buildRedirect()
    {

        //If the replacement was not already set
        if(empty($this->_replace)) {

            /**
             * The Rewrite Model
             *
             * @var HMWP_Models_Rewrite $rewriteModel
             */
            $rewriteModel = HMWP_Classes_ObjController::getClass('HMWP_Models_Rewrite');

            //build the rules paths to change back the hidden paths
            if (!isset($rewriteModel->_replace['from']) && !isset($rewriteModel->_replace['to'])) {
                $rewriteModel->buildRedirect();

	            //add the domain to rewrites if not multisite
	            if (HMWP_Classes_Tools::getOption('hmwp_fix_relative') && !HMWP_Classes_Tools::isMultisites()) {
		            $rewriteModel->prepareFindReplace();
	            }
            }

            //Verify only the rewrites
            if (isset($rewriteModel->_replace['from']) && isset($rewriteModel->_replace['to']) && !empty($rewriteModel->_replace['from']) && !empty($rewriteModel->_replace['to'])) {
                if (!empty($rewriteModel->_replace['rewrite'])) {
                    foreach ($rewriteModel->_replace['rewrite'] as $index => $value) {
                        //add only the paths or the design path
                        if ((isset($rewriteModel->_replace['to'][$index]) && substr($rewriteModel->_replace['to'][$index], -1) == '/') 
                            || strpos($rewriteModel->_replace['to'][$index], '/' . HMWP_Classes_Tools::getOption('hmwp_themes_style'))
                        ) {
                            $this->_replace['from'][] = $rewriteModel->_replace['from'][$index];
                            $this->_replace['to'][] = $rewriteModel->_replace['to'][$index];
                        }
                    }
                }

                //add the domain to rewrites
                if (HMWP_Classes_Tools::getOption('hmwp_fix_relative')) {
                    $this->_replace['from'] = array_map(array($rewriteModel, 'addDomainUrl'), (array)$this->_replace['from']);
                    $this->_replace['to'] = array_map(array($rewriteModel, 'addDomainUrl'), (array)$this->_replace['to']);
                }
            }
        }

    }

    /**
     * Replace the paths in CSS files
     *
     * @throws Exception
     */
    public function changePathsInCss()
    {
        if (HMWP_Classes_Tools::getOption('error') ) {
            return;
        }

        try {
            if ($this->getCachePath() ) {

                $cssfiles = $this->rsearch($this->getCachePath() . '*.css');

                if (!empty($cssfiles) ) {

                    //load the redirects into array
                    $this->buildRedirect();

                    foreach ( $cssfiles as $file ) {
                        //only if the file is writable
                        if (!$content = $this->readFile($file) ) {
                            continue;
                        }

	                    //find replace the content
	                    $newcontent = $this->findReplace($content);
	                    if($newcontent <> $content){
		                    //echo $newcontent;exit();
		                    //write into file
		                    $this->writeFile($file, $newcontent);
	                    }

                    }
                }
            }

        } catch ( Exception $e ) {
        }
    }

    /**
     * Replace the paths inHTML files
     *
     * @return void
     */
    public function changePathsInJs()
    {
        if (HMWP_Classes_Tools::getOption('error') ) {
            return;
        }

        try {
            if ($this->getCachePath() ) {

                $jsfiles = $this->rsearch($this->getCachePath() . '*.js');

                if (!empty($jsfiles) ) {

                    //load the redirects into array
                    $this->buildRedirect();

                    foreach ( $jsfiles as $file ) {

                        //only if the file is writable
                        if (!$content = $this->readFile($file) ) {
                            continue;
                        }

	                    //find replace the content
	                    $newcontent = $this->findReplace($content);
	                    if($newcontent <> $content){
		                    //echo $newcontent;exit();
		                    //write into file
		                    $this->writeFile($file, $newcontent);
	                    }
                    }
                }
            }
        } catch ( Exception $e ) {
            //echo $e->getMessage();exit();
        }
    }

    /**
     * Replace the paths inHTML files
     *
     * @return void
     */
    public function changePathsInHTML()
    {

        //Initialize WordPress Filesystem
        $wp_filesystem = HMWP_Classes_ObjController::initFilesystem();

        if (HMWP_Classes_Tools::getOption('error') ) {
            return;
        }

        try {
            if ($this->getCachePath() ) {
                $htmlfiles = $this->rsearch($this->getCachePath() . '*.html');

                if (!empty($htmlfiles) ) {

                    //load the redirects into array
                    $this->buildRedirect();

                    /**
                     * The Rewrite Model
                     *
                     * @var HMWP_Models_Rewrite $rewriteModel
                     */
                    $rewriteModel = HMWP_Classes_ObjController::getClass('HMWP_Models_Rewrite');

                    foreach ( $htmlfiles as $file ) {
                        //only if the file is writable
                        if (!$wp_filesystem->is_writable($file) ) {
                            continue;
                        }

                        //get the file content
                        $content = $wp_filesystem->get_contents($file);

	                    //find replace the content
	                    $newcontent = $this->findReplace($content);
	                    if($newcontent <> $content){
		                    //echo $newcontent;exit();
		                    //write into file
		                    $this->writeFile($file, $newcontent);
	                    }
                    }
                }
            }
        } catch ( Exception $e ) {
        }
    }

    /**
     * Find and replace the old paths into files
     *
     * @param string $content
     * @return string|string[]|null
     * @throws Exception
     */
    public function findReplace( $content )
    {

        //If there are replaced paths
        if(!empty($this->_replace) && isset($this->_replace['from']) && isset($this->_replace['to'])) {

            //if there is content in the file
            if ($content <> '') {
                //if the file has unchanged paths
                if (strpos($content, HMWP_Classes_Tools::$default['hmwp_admin_url']) !== false 
                    || strpos($content, HMWP_Classes_Tools::$default['hmwp_wp-content_url']) !== false 
                    || strpos($content, HMWP_Classes_Tools::$default['hmwp_wp-includes_url']) !== false
                ) {

                    //fix the relative links before
                    if (HMWP_Classes_Tools::getOption('hmwp_fix_relative')) {
                        $content = HMWP_Classes_ObjController::getClass('HMWP_Models_Rewrite')->fixRelativeLinks($content);
                    }

                    $content = str_ireplace($this->_replace['from'], $this->_replace['to'], $content);

                }

                //Text Mapping for all css files - Experimental
                if (HMWP_Classes_Tools::getOption('hmwp_mapping_file')) {
                    $hmwp_text_mapping = json_decode(HMWP_Classes_Tools::getOption('hmwp_text_mapping'), true);
                    if (isset($hmwp_text_mapping['from']) && !empty($hmwp_text_mapping['from'])
                        && isset($hmwp_text_mapping['to']) && !empty($hmwp_text_mapping['to'])
                    ) {

                        //only classes & ids
                        if (HMWP_Classes_Tools::getOption('hmwp_mapping_classes')) {

                            foreach ($hmwp_text_mapping['from'] as $index => $from) {
                                if (strpos($content, $from) !== false) {
                                    $content = preg_replace("'(?:([^/])" . addslashes($from) . "([^/]))'is", '$1' . $hmwp_text_mapping['to'][$index] . '$2', $content);
                                }
                            }

                        } else {
                            $content = str_ireplace($hmwp_text_mapping['from'], $hmwp_text_mapping['to'], $content);
                        }
                    }

                }
            }
        }

        return $content;
    }

    /**
     * Get the files paths by extension
     *
     * @param string $pattern
     * @param int $flags
     *
     * @return array
     */
    public function rsearch( $pattern, $flags = 0 )
    {
        $files = array();

        if (function_exists('glob') ) {
            $files = glob($pattern, $flags);
            foreach ( glob(dirname($pattern) . '/*', GLOB_ONLYDIR | GLOB_NOSORT) as $dir ) {
                $files = array_merge($files, $this->rsearch($dir . '/' . basename($pattern), $flags));
            }
        }

        return $files;
    }

    /**
     * Read the file content
     *
     * @param string $file
     *
     * @return bool
     */
    public function readFile( $file )
    {

        //Initialize WordPress Filesystem
        $wp_filesystem = HMWP_Classes_ObjController::initFilesystem();

        if ($wp_filesystem->is_writable($file) ) {
            return $wp_filesystem->get_contents($file);
        }

        return false;
    }

    /**
     * Write the file content
     *
     * @param string $file
     * @param string $content
     * @return void
     */
    public function writeFile( $file, $content )
    {

        //Initialize WordPress Filesystem
        $wp_filesystem = HMWP_Classes_ObjController::initFilesystem();

        if ($wp_filesystem->is_writable($file) ) {
            $wp_filesystem->put_contents($file, $content);
        }

    }

}

Filemanager

Name Type Size Permission Actions
compatibility Folder 0777
Brute.php File 23.21 KB 0644
Cache.php File 11.15 KB 0644
Clicks.php File 6.38 KB 0644
Compatibility.php File 43.06 KB 0644
Cookies.php File 10.46 KB 0644
Files.php File 22.59 KB 0644
ListTable.php File 9.23 KB 0644
Log.php File 5.51 KB 0644
Menu.php File 16.34 KB 0644
Rewrite.php File 115.06 KB 0644
RoleManager.php File 3.06 KB 0644
Rollback.php File 2.95 KB 0644
Rules.php File 32.24 KB 0644
Settings.php File 17.33 KB 0644
Woocommerce.php File 656 B 0644