!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_tdfonline/proyectos/tdfonline/php/   drwxr-xr-x
Free 14.92 GB of 61.93 GB (24.08%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


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

abstract class SlimStatus {
    const 
FAILURE 'failure';
    const 
SUCCESS 'success';
}

class 
Slim {

    public static function 
getImages($inputName 'slim') {

        
$values Slim::getPostData($inputName);

        
// test for errors
        
if ($values === false) {
            return 
false;
        }

        
// determine if contains multiple input values, if is singular, put in array
        
$data = array();
        if (!
is_array($values)) {
            
$values = array($values);
        }

        
// handle all posted fields
        
foreach ($values as $value) {
            
$inputValue Slim::parseInput($value);
            if (
$inputValue) {
                
array_push($data$inputValue);
            }
        }

        
// return the data collected from the fields
        
return $data;

    }

    
// $value should be in JSON format
    
private static function parseInput($value) {

        
// if no json received, exit, don't handle empty input values.
        
if (empty($value)) {return null;}

        
// The data is posted as a JSON String so to be used it needs to be deserialized first
        
$data json_decode($value);

        
// shortcut
        
$input null;
        
$actions null;
        
$output null;
        
$meta null;

        if (isset (
$data->input)) {

            
$inputData null;
            if (isset (
$data->input->field)) {
                
$filename $_FILES[$data->input->field]['tmp_name'];
                if (
$filename) {
                    
$inputData file_get_contents($filename);
                }
            }

            
$input = array(
                
'data' => $inputData,
                
'name' => $data->input->name,
                
'type' => $data->input->type,
                
'size' => $data->input->size,
                
'width' => $data->input->width,
                
'height' => $data->input->height,
            );

        }

        if (isset(
$data->output)) {
            
$outputData = isset($data->output->image) ? Slim::getBase64Data($data->output->image) : null;
            
$output = array(
                
'data' => $outputData,
                
'name' => $data->output->name,
                
'type' => $data->output->type,
                
'width' => $data->output->width,
                
'height' => $data->output->height
            
);
        }

        if (isset(
$data->actions)) {
            
$actions = array(
                
'crop' => $data->actions->crop ? array(
                    
'x' => $data->actions->crop->x,
                    
'y' => $data->actions->crop->y,
                    
'width' => $data->actions->crop->width,
                    
'height' => $data->actions->crop->height,
                    
'type' => $data->actions->crop->type
                
) : null,
                
'size' => $data->actions->size ? array(
                    
'width' => $data->actions->size->width,
                    
'height' => $data->actions->size->height
                
) : null
            
);
        }

        if (isset(
$data->meta)) {
            
$meta $data->meta;
        }

        
// We've sanitized the base64data and will now return the clean file object
        
return array(
            
'input' => $input,
            
'output' => $output,
            
'actions' => $actions,
            
'meta' => $meta
        
);
    }

    
// $path should have trailing slash
    
public static function saveFile($data$name$path 'tmp/'$uid true) {

        
// Add trailing slash if omitted
        
if (substr($path, -1) !== '/') {
            
$path .= '/';
        }
        
        
// Test if directory already exists
        
if(!is_dir($path)){
            
mkdir($path0755true);
        }

        
// Let's put a unique id in front of the filename so we don't accidentally overwrite older files
        
if ($uid) {
            
$name uniqid() . '_' Slim::sanitizeFileName($name);
        }

        
// Add name to path, we need the full path including the name to save the file
        
$path $path $name;

        
// store the file
        
Slim::save($data$path);

        
// return the files new name and location
        
return array(
            
'name' => $name,
            
'path' => $path
        
);
    }

    public static function 
outputJSON($data) {
        
header('Content-Type: application/json');
        echo 
json_encode($data);
    }

    
/**
     * http://stackoverflow.com/a/2021729
     * Remove anything which isn't a word, whitespace, number
     * or any of the following characters -_~,;[]().
     * If you don't need to handle multi-byte characters
     * you can use preg_replace rather than mb_ereg_replace
     * @param $str
     * @return string
     */
    
public static function sanitizeFileName($str) {
        
// Basic clean up
        
$str mb_ereg_replace("([^\w\s\d\-_~,;\[\]\(\).])"''$str);
        
// Remove any runs of periods
        
$str mb_ereg_replace("([\.]{2,})"''$str);
        return 
$str;
    }

    
/**
     * Gets the posted data from the POST or FILES object. If was using Slim to upload it will be in POST (as posted with hidden field) if not enhanced with Slim it'll be in FILES.
     * @param $inputName
     * @return array|bool
     */
    
private static function getPostData($inputName) {

        
$values = array();

        if (isset(
$_POST[$inputName])) {
            
$values $_POST[$inputName];
        }
        else if (isset(
$_FILES[$inputName])) {
            
// Slim was not used to upload this file
            
return false;
        }

        return 
$values;
    }

    
/**
     * Saves the data to a given location
     * @param $data
     * @param $path
     */
    
private static function save($data$path) {
        
file_put_contents($path$data);
    }

    
/**
     * Strips the "data:image..." part of the base64 data string so PHP can save the string as a file
     * @param $data
     * @return string
     */
    
private static function getBase64Data($data) {
        return 
base64_decode(preg_replace('#^data:image/\w+;base64,#i'''$data));
    }

}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

--[ c99shell v. 2.1 [PHP 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.6949 ]--