ShellBanner
System:Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686
Software:Apache. PHP/5.3.6-13ubuntu3.10
ID:uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
Safe Mode:OFF
Open_Basedir:OFF
Freespace:25.1 GB of 70.42 GB (35.65%)
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,

/ http/ guitar.1/ libraries/ joomla/ filesystem/ - drwxr-xr-x

Directory:
Viewing file:     path.php (6.77 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * @package     Joomla.Platform
 * @subpackage  FileSystem
 *
 * @copyright   Copyright (C) 2005 - 2012 Open Source Matters, Inc. All rights reserved.
 * @license     GNU General Public License version 2 or later; see LICENSE
 */

defined('JPATH_PLATFORM') or die;

// Define a boolean constant as true if a Windows based host
define('JPATH_ISWIN', (strtoupper(substr(PHP_OS03)) === 'WIN'));

// Define a boolean constant as true if a Mac based host
define('JPATH_ISMAC', (strtoupper(substr(PHP_OS03)) === 'MAC'));

if (!
defined('DS'))
{
    
// Define a string constant shortcut for the DIRECTORY_SEPARATOR define
    
define('DS'DIRECTORY_SEPARATOR);
}

if (!
defined('JPATH_ROOT'))
{
    
// Define a string constant for the root directory of the file system in native format
    
define('JPATH_ROOT'JPath::clean(JPATH_SITE));
}

/**
 * A Path handling class
 *
 * @package     Joomla.Platform
 * @subpackage  FileSystem
 * @since       11.1
 */
class JPath
{
    
/**
     * Checks if a path's permissions can be changed.
     *
     * @param   string  $path  Path to check.
     *
     * @return  boolean  True if path can have mode changed.
     *
     * @since   11.1
     */
    
public static function canChmod($path)
    {
        
$perms fileperms($path);
        if (
$perms !== false)
        {
            if (@
chmod($path$perms 0001))
            {
                @
chmod($path$perms);
                return 
true;
            }
        }

        return 
false;
    }

    
/**
     * Chmods files and directories recursively to given permissions.
     *
     * @param   string  $path        Root path to begin changing mode [without trailing slash].
     * @param   string  $filemode    Octal representation of the value to change file mode to [null = no change].
     * @param   string  $foldermode  Octal representation of the value to change folder mode to [null = no change].
     *
     * @return  boolean  True if successful [one fail means the whole operation failed].
     *
     * @since   11.1
     */
    
public static function setPermissions($path$filemode '0644'$foldermode '0755')
    {
        
// Initialise return value
        
$ret true;

        if (
is_dir($path))
        {
            
$dh opendir($path);

            while (
$file readdir($dh))
            {
                if (
$file != '.' && $file != '..')
                {
                    
$fullpath $path '/' $file;
                    if (
is_dir($fullpath))
                    {
                        if (!
JPath::setPermissions($fullpath$filemode$foldermode))
                        {
                            
$ret false;
                        }
                    }
                    else
                    {
                        if (isset(
$filemode))
                        {
                            if (!@ 
chmod($fullpathoctdec($filemode)))
                            {
                                
$ret false;
                            }
                        }
                    }
                }
            }
            
closedir($dh);
            if (isset(
$foldermode))
            {
                if (!@ 
chmod($pathoctdec($foldermode)))
                {
                    
$ret false;
                }
            }
        }
        else
        {
            if (isset(
$filemode))
            {
                
$ret = @ chmod($pathoctdec($filemode));
            }
        }

        return 
$ret;
    }

    
/**
     * Get the permissions of the file/folder at a give path.
     *
     * @param   string  $path  The path of a file/folder.
     *
     * @return  string  Filesystem permissions.
     *
     * @since   11.1
     */
    
public static function getPermissions($path)
    {
        
$path JPath::clean($path);
        
$mode = @ decoct(@ fileperms($path) & 0777);

        if (
strlen($mode) < 3)
        {
            return 
'---------';
        }

        
$parsed_mode '';
        for (
$i 0$i 3$i++)
        {
            
// read
            
$parsed_mode .= ($mode{$i} & 04) ? "r" "-";
            
// write
            
$parsed_mode .= ($mode{$i} & 02) ? "w" "-";
            
// execute
            
$parsed_mode .= ($mode{$i} & 01) ? "x" "-";
        }

        return 
$parsed_mode;
    }

    
/**
     * Checks for snooping outside of the file system root.
     *
     * @param   string  $path  A file system path to check.
     * @param   string  $ds    Directory separator (optional).
     *
     * @return  string  A cleaned version of the path or exit on error.
     *
     * @since   11.1
     */
    
public static function check($path$ds DIRECTORY_SEPARATOR)
    {
        if (
strpos($path'..') !== false)
        {
            
// Don't translate
            
JError::raiseError(20'JPath::check Use of relative paths not permitted');
            
jexit();
        }

        
$path JPath::clean($path);
        if ((
JPATH_ROOT != '') && strpos($pathJPath::clean(JPATH_ROOT)) !== 0)
        {
            
// Don't translate
            
JError::raiseError(20'JPath::check Snooping out of bounds @ ' $path);
            
jexit();
        }

        return 
$path;
    }

    
/**
     * Function to strip additional / or \ in a path name.
     *
     * @param   string  $path  The path to clean.
     * @param   string  $ds    Directory separator (optional).
     *
     * @return  string  The cleaned path.
     *
     * @since   11.1
     */
    
public static function clean($path$ds DIRECTORY_SEPARATOR)
    {
        
$path trim($path);

        if (empty(
$path))
        {
            
$path JPATH_ROOT;
        }
        else
        {
            
// Remove double slashes and backslashes and convert all slashes and backslashes to DIRECTORY_SEPARATOR
            
$path preg_replace('#[/\\\\]+#'$ds$path);
        }

        return 
$path;
    }

    
/**
     * Method to determine if script owns the path.
     *
     * @param   string  $path  Path to check ownership.
     *
     * @return  boolean  True if the php script owns the path passed.
     *
     * @since   11.1
     */
    
public static function isOwner($path)
    {
        
jimport('joomla.filesystem.file');

        
$tmp md5(JUserHelper::genRandomPassword(16));
        
$ssp ini_get('session.save_path');
        
$jtp JPATH_SITE '/tmp';

        
// Try to find a writable directory
        
$dir is_writable('/tmp') ? '/tmp' false;
        
$dir = (!$dir && is_writable($ssp)) ? $ssp false;
        
$dir = (!$dir && is_writable($jtp)) ? $jtp false;

        if (
$dir)
        {
            
$test $dir '/' $tmp;

            
// Create the test file
            
$blank '';
            
JFile::write($test$blankfalse);

            
// Test ownership
            
$return = (fileowner($test) == fileowner($path));

            
// Delete the test file
            
JFile::delete($test);

            return 
$return;
        }

        return 
false;
    }

    
/**
     * Searches the directory paths for a given file.
     *
     * @param   mixed   $paths  An path string or array of path strings to search in
     * @param   string  $file   The file name to look for.
     *
     * @return  mixed   The full path and file name for the target file, or boolean false if the file is not found in any of the paths.
     *
     * @since   11.1
     */
    
public static function find($paths$file)
    {
        
settype($paths'array'); //force to array

        // Start looping through the path set
        
foreach ($paths as $path)
        {
            
// Get the path to the file
            
$fullname $path '/' $file;

            
// Is the path based on a stream?
            
if (strpos($path'://') === false)
            {
                
// Not a stream, so do a realpath() to avoid directory
                // traversal attempts on the local file system.
                
$path realpath($path); // needed for substr() later
                
$fullname realpath($fullname);
            }

            
// The substr() check added to make sure that the realpath()
            // results in a directory registered so that
            // non-registered directories are not accessible via directory
            // traversal attempts.
            
if (file_exists($fullname) && substr($fullname0strlen($path)) == $path)
            {
                return 
$fullname;
            }
        }

        
// Could not find the file in the set of paths
        
return false;
    }
}
Command:
Quick Commands:
Upload:
[OK] Max size: 100MB
PHP Filesystem: <@ Ú
Search File:
regexp
Create File:
Overwrite [OK]
View File:
Mass Defacement:
[+] Main Directory: [+] Defacement Url:
LmfaoX Shell - Private Build [BETA] - v0.1 -; Generated: 0.3779 seconds