!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\AmbienteBogota\aulavirtual\admin\editor\plugins\ImageManager\Classes\   drwxrwxrwx
Free 3.24 GB of 39.52 GB (8.2%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     Files.php (5.32 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * File Utilities.
 * @author $Author: thorstenr $
 * @version $Id: Files.php,v 1.1.2.1 2005/09/06 13:41:29 thorstenr Exp $
 * @package ImageManager
 */

define('FILE_ERROR_NO_SOURCE'100);
define('FILE_ERROR_COPY_FAILED'101);
define('FILE_ERROR_DST_DIR_FAILED'102);
define('FILE_COPY_OK'103);

/**
 * File Utilities
 * @author $Author: thorstenr $
 * @version $Id: Files.php,v 1.1.2.1 2005/09/06 13:41:29 thorstenr Exp $
 * @package ImageManager
 * @subpackage files
 */
class Files 
{
    
    
/**
     * Copy a file from source to destination. If unique == true, then if
     * the destination exists, it will be renamed by appending an increamenting 
     * counting number.
     * @param string $source where the file is from, full path to the files required
     * @param string $destination_file name of the new file, just the filename
     * @param string $destination_dir where the files, just the destination dir,
     * e.g., /www/html/gallery/
     * @param boolean $unique create unique destination file if true.
     * @return string the new copied filename, else error if anything goes bad.
     */
    
function copyFile($source$destination_dir$destination_file$unique=true
    {
        if(!(
file_exists($source) && is_file($source))) 
            return 
FILE_ERROR_NO_SOURCE;

        
$destination_dir Files::fixPath($destination_dir);

        if(!
is_dir($destination_dir)) 
            Return 
FILE_ERROR_DST_DIR_FAILED;

        
$filename Files::escape($destination_file);

        if(
$unique
        {
            
$dotIndex strrpos($destination_file'.');
            
$ext '';
            if(
is_int($dotIndex)) 
            {
                
$ext substr($destination_file$dotIndex);
                
$base substr($destination_file0$dotIndex);
            }
            
$counter 0;
            while(
is_file($destination_dir.$filename)) 
            {
                
$counter++;
                
$filename $base.'_'.$counter.$ext;
            }
        }

        if (!
copy($source$destination_dir.$filename))
            return 
FILE_ERROR_COPY_FAILED;
        
        
//verify that it copied, new file must exists
        
if (is_file($destination_dir.$filename))
            Return 
$filename;
        else
            return 
FILE_ERROR_COPY_FAILED;
    }

    
/**
     * Create a new folder.
     * @param string $newFolder specifiy the full path of the new folder.
     * @return boolean true if the new folder is created, false otherwise.
     */
    
function createFolder($newFolder
    {
        
mkdir ($newFolder0777);
        return 
chmod($newFolder0777);
    }


    
/**
     * Escape the filenames, any non-word characters will be
     * replaced by an underscore.
     * @param string $filename the orginal filename
     * @return string the escaped safe filename
     */
    
function escape($filename
    {
        Return 
preg_replace('/[^\w\._]/''_'$filename);
    }

    
/**
     * Delete a file.
     * @param string $file file to be deleted
     * @return boolean true if deleted, false otherwise.
     */
    
function delFile($file
    {
        if(
is_file($file)) 
            Return 
unlink($file);
        else
            Return 
false;
    }

    
/**
     * Delete folder(s), can delete recursively.
     * @param string $folder the folder to be deleted.
     * @param boolean $recursive if true, all files and sub-directories
     * are delete. If false, tries to delete the folder, can throw
     * error if the directory is not empty.
     * @return boolean true if deleted.
     */
    
function delFolder($folder$recursive=false
    {
        
$deleted true;
        if(
$recursive
        {
            
$d dir($folder);
            while (
false !== ($entry $d->read())) 
            {
                if (
$entry != '.' && $entry != '..')
                {
                    
$obj Files::fixPath($folder).$entry;
                    
//var_dump($obj);
                    
if (is_file($obj))
                    {
                        
$deleted &= Files::delFile($obj);                    
                    }
                    else if(
is_dir($obj))
                    {
                        
$deleted &= Files::delFolder($obj$recursive);
                    }
                    
                }
            }
            
$d->close();

        }

        
//$folder= $folder.'/thumbs';
        //var_dump($folder);
        
if(is_dir($folder)) 
            
$deleted &= rmdir($folder);
        else
            
$deleted &= false;

        Return 
$deleted;
    }

    
/**
     * Append a / to the path if required.
     * @param string $path the path
     * @return string path with trailing /
     */
    
function fixPath($path
    {
        
//append a slash to the path if it doesn't exists.
        
if(!(substr($path,-1) == '/'))
            
$path .= '/';
        Return 
$path;
    }

    
/**
     * Concat two paths together. Basically $pathA+$pathB
     * @param string $pathA path one
     * @param string $pathB path two
     * @return string a trailing slash combinded path.
     */
    
function makePath($pathA$pathB
    {
        
$pathA Files::fixPath($pathA);
        if(
substr($pathB,0,1)=='/')
            
$pathB substr($pathB,1);
        Return 
Files::fixPath($pathA.$pathB);
    }

    
/**
     * Similar to makePath, but the second parameter
     * is not only a path, it may contain say a file ending.
     * @param string $pathA the leading path
     * @param string $pathB the ending path with file
     * @return string combined file path.
     */
    
function makeFile($pathA$pathB
    {        
        
$pathA Files::fixPath($pathA);
        if(
substr($pathB,0,1)=='/')
            
$pathB substr($pathB,1);
        
        Return 
$pathA.$pathB;
    }

    
    
/**
     * Format the file size, limits to Mb.
     * @param int $size the raw filesize
     * @return string formated file size.
     */
    
function formatSize($size
    {
        if(
$size 1024
            return 
$size.' bytes';    
        else if(
$size >= 1024 && $size 1024*1024
            return 
sprintf('%01.2f',$size/1024.0).' Kb';    
        else
            return 
sprintf('%01.2f',$size/(1024.0*1024)).' Mb';    
    }
}

?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

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

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

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0156 ]--