!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: nginx/1.23.4. PHP/5.6.40-65+ubuntu20.04.1+deb.sury.org+1 

uname -a: Linux foro-restaurado-2 5.15.0-1040-oracle #46-Ubuntu SMP Fri Jul 14 21:47:21 UTC 2023
aarch64
 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/share/php/Symfony/Component/Cache/Adapter/   drwxr-xr-x
Free 83.26 GB of 96.73 GB (86.07%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


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

/*
 * This file is part of the Symfony package.
 *
 * (c) Fabien Potencier <[email protected]>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

namespace Symfony\Component\Cache\Adapter;

use 
Symfony\Component\Cache\Exception\CacheException;
use 
Symfony\Component\Cache\Exception\InvalidArgumentException;
use 
Symfony\Component\Cache\PruneableInterface;
use 
Symfony\Component\Cache\Traits\FilesystemCommonTrait;
use 
Symfony\Component\VarExporter\VarExporter;

/**
 * @author Piotr Stankowski <[email protected]>
 * @author Nicolas Grekas <[email protected]>
 * @author Rob Frawley 2nd <[email protected]>
 */
class PhpFilesAdapter extends AbstractAdapter implements PruneableInterface
{
    use 
FilesystemCommonTrait {
        
doClear as private doCommonClear;
        
doDelete as private doCommonDelete;
    }

    private 
$includeHandler;
    private 
$appendOnly;
    private 
$values = [];
    private 
$files = [];

    private static 
$startTime;
    private static 
$valuesCache = [];

    
/**
     * @param $appendOnly Set to `true` to gain extra performance when the items stored in this pool never expire.
     *                    Doing so is encouraged because it fits perfectly OPcache's memory model.
     *
     * @throws CacheException if OPcache is not enabled
     */
    
public function __construct(string $namespace ''int $defaultLifetime 0string $directory nullbool $appendOnly false)
    {
        
$this->appendOnly $appendOnly;
        
self::$startTime self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time();
        
parent::__construct(''$defaultLifetime);
        
$this->init($namespace$directory);
        
$this->includeHandler = static function ($type$msg$file$line) {
            throw new \
ErrorException($msg0$type$file$line);
        };
    }

    public static function 
isSupported()
    {
        
self::$startTime self::$startTime ?? $_SERVER['REQUEST_TIME'] ?? time();

        return \
function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN) && (!\in_array(\PHP_SAPI, ['cli''phpdbg'], true) || filter_var(ini_get('opcache.enable_cli'), \FILTER_VALIDATE_BOOLEAN));
    }

    
/**
     * @return bool
     */
    
public function prune()
    {
        
$time time();
        
$pruned true;
        
$getExpiry true;

        
set_error_handler($this->includeHandler);
        try {
            foreach (
$this->scanHashDir($this->directory) as $file) {
                try {
                    if (\
is_array($expiresAt = include $file)) {
                        
$expiresAt $expiresAt[0];
                    }
                } catch (\
ErrorException $e) {
                    
$expiresAt $time;
                }

                if (
$time >= $expiresAt) {
                    
$pruned $this->doUnlink($file) && !file_exists($file) && $pruned;
                }
            }
        } finally {
            
restore_error_handler();
        }

        return 
$pruned;
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doFetch(array $ids)
    {
        if (
$this->appendOnly) {
            
$now 0;
            
$missingIds = [];
        } else {
            
$now time();
            
$missingIds $ids;
            
$ids = [];
        }
        
$values = [];

        
begin:
        
$getExpiry false;

        foreach (
$ids as $id) {
            if (
null === $value $this->values[$id] ?? null) {
                
$missingIds[] = $id;
            } elseif (
'N;' === $value) {
                
$values[$id] = null;
            } elseif (!\
is_object($value)) {
                
$values[$id] = $value;
            } elseif (!
$value instanceof LazyValue) {
                
$values[$id] = $value();
            } elseif (
false === $values[$id] = include $value->file) {
                unset(
$values[$id], $this->values[$id]);
                
$missingIds[] = $id;
            }
            if (!
$this->appendOnly) {
                unset(
$this->values[$id]);
            }
        }

        if (!
$missingIds) {
            return 
$values;
        }

        
set_error_handler($this->includeHandler);
        try {
            
$getExpiry true;

            foreach (
$missingIds as $k => $id) {
                try {
                    
$file $this->files[$id] ?? $this->files[$id] = $this->getFile($id);

                    if (isset(
self::$valuesCache[$file])) {
                        [
$expiresAt$this->values[$id]] = self::$valuesCache[$file];
                    } elseif (\
is_array($expiresAt = include $file)) {
                        if (
$this->appendOnly) {
                            
self::$valuesCache[$file] = $expiresAt;
                        }

                        [
$expiresAt$this->values[$id]] = $expiresAt;
                    } elseif (
$now $expiresAt) {
                        
$this->values[$id] = new LazyValue($file);
                    }

                    if (
$now >= $expiresAt) {
                        unset(
$this->values[$id], $missingIds[$k], self::$valuesCache[$file]);
                    }
                } catch (\
ErrorException $e) {
                    unset(
$missingIds[$k]);
                }
            }
        } finally {
            
restore_error_handler();
        }

        
$ids $missingIds;
        
$missingIds = [];
        goto 
begin;
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doHave(string $id)
    {
        if (
$this->appendOnly && isset($this->values[$id])) {
            return 
true;
        }

        
set_error_handler($this->includeHandler);
        try {
            
$file $this->files[$id] ?? $this->files[$id] = $this->getFile($id);
            
$getExpiry true;

            if (isset(
self::$valuesCache[$file])) {
                [
$expiresAt$value] = self::$valuesCache[$file];
            } elseif (\
is_array($expiresAt = include $file)) {
                if (
$this->appendOnly) {
                    
self::$valuesCache[$file] = $expiresAt;
                }

                [
$expiresAt$value] = $expiresAt;
            } elseif (
$this->appendOnly) {
                
$value = new LazyValue($file);
            }
        } catch (\
ErrorException $e) {
            return 
false;
        } finally {
            
restore_error_handler();
        }
        if (
$this->appendOnly) {
            
$now 0;
            
$this->values[$id] = $value;
        } else {
            
$now time();
        }

        return 
$now $expiresAt;
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doSave(array $valuesint $lifetime)
    {
        
$ok true;
        
$expiry $lifetime time() + $lifetime 'PHP_INT_MAX';
        
$allowCompile self::isSupported();

        foreach (
$values as $key => $value) {
            unset(
$this->values[$key]);
            
$isStaticValue true;
            if (
null === $value) {
                
$value "'N;'";
            } elseif (\
is_object($value) || \is_array($value)) {
                try {
                    
$value VarExporter::export($value$isStaticValue);
                } catch (\
Exception $e) {
                    throw new 
InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.'$keyget_debug_type($value)), 0$e);
                }
            } elseif (\
is_string($value)) {
                
// Wrap "N;" in a closure to not confuse it with an encoded `null`
                
if ('N;' === $value) {
                    
$isStaticValue false;
                }
                
$value var_export($valuetrue);
            } elseif (!
is_scalar($value)) {
                throw new 
InvalidArgumentException(sprintf('Cache key "%s" has non-serializable "%s" value.'$keyget_debug_type($value)));
            } else {
                
$value var_export($valuetrue);
            }

            
$encodedKey rawurlencode($key);

            if (
$isStaticValue) {
                
$value "return [{$expiry}{$value}];";
            } elseif (
$this->appendOnly) {
                
$value "return [{$expiry}, static function () { return {$value}; }];";
            } else {
                
// We cannot use a closure here because of https://bugs.php.net/76982
                
$value str_replace('\Symfony\Component\VarExporter\Internal\\'''$value);
                
$value "namespace Symfony\Component\VarExporter\Internal;\n\nreturn \$getExpiry ? {$expiry} : {$value};";
            }

            
$file $this->files[$key] = $this->getFile($keytrue);
            
// Since OPcache only compiles files older than the script execution start, set the file's mtime in the past
            
$ok $this->write($file"<?php //{$encodedKey}\n\n{$value}\n"self::$startTime 10) && $ok;

            if (
$allowCompile) {
                @
opcache_invalidate($filetrue);
                @
opcache_compile_file($file);
            }
            unset(
self::$valuesCache[$file]);
        }

        if (!
$ok && !is_writable($this->directory)) {
            throw new 
CacheException(sprintf('Cache directory is not writable (%s).'$this->directory));
        }

        return 
$ok;
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doClear(string $namespace)
    {
        
$this->values = [];

        return 
$this->doCommonClear($namespace);
    }

    
/**
     * {@inheritdoc}
     */
    
protected function doDelete(array $ids)
    {
        foreach (
$ids as $id) {
            unset(
$this->values[$id]);
        }

        return 
$this->doCommonDelete($ids);
    }

    protected function 
doUnlink(string $file)
    {
        unset(
self::$valuesCache[$file]);

        if (
self::isSupported()) {
            @
opcache_invalidate($filetrue);
        }

        return @
unlink($file);
    }

    private function 
getFileKey(string $file): string
    
{
        if (!
$h = @fopen($file'r')) {
            return 
'';
        }

        
$encodedKey substr(fgets($h), 8);
        
fclose($h);

        return 
rawurldecode(rtrim($encodedKey));
    }
}

/**
 * @internal
 */
class LazyValue
{
    public 
$file;

    public function 
__construct(string $file)
    {
        
$this->file $file;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

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

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by HackingTool | HackingTool | Generation time: 0.0047 ]--