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

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/home/jerryg/public_html/gallery2/modules/imagemagick/   drwxr-xr-x
Free 318.34 GB of 458.09 GB (69.49%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     module.inc (9.23 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
 * Gallery - a web based photo album viewer and editor
 * Copyright (C) 2000-2007 Bharat Mediratta
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or (at
 * your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA  02110-1301, USA.
 */

/**
 * ImageMagick Graphics Module
 *
 * This module provides the ImageMagick graphics toolkit for Gallery
 *
 * @package ImageMagick
 * @author Bharat Mediratta <bharat@menalto.com>
 * @author Vallimar <vallimar@sexorcisto.com>
 * @version $Revision: 16034 $
 */
class ImageMagickModule extends GalleryModule {

    function 
ImageMagickModule() {
    global 
$gallery;

    
$this->setId('imagemagick');
    
$this->setName($gallery->i18n('ImageMagick'));
    
$this->setDescription($gallery->i18n('ImageMagick / GraphicsMagick Graphics Toolkit'));
    
$this->setVersion('1.1.1');
    
$this->setGroup('toolkits'$gallery->i18n('Graphics Toolkits'));
    
$this->setCallbacks('getSiteAdminViews');
    
$this->setRequiredCoreApi(array(74));
    
$this->setRequiredModuleApi(array(30));
    }

    
/**
     * @see GalleryModule::upgrade
     */
    
function upgrade($currentVersion) {
    list (
$ret$params) = GalleryCoreApi::fetchAllPluginParameters('module''imagemagick');
    if (
$ret) {
        return 
$ret;
    }
    foreach (array(
'path' => '''jpegQuality' => '75''cmykSupport' => 'none',
               
'versionOk' => '') as $key => $value) {
        if (!isset(
$params[$key])) {
        
$ret $this->setParameter($key$value);
        if (
$ret) {
            return 
$ret;
        }
        }
    }

    if (!empty(
$params['path']) && empty($params['versionOk'])) {
        
GalleryCoreApi::requireOnce(
        
'modules/imagemagick/classes/ImageMagickToolkitHelper.class');
        list (
$ret$version$vulnerable) =
        
ImageMagickToolkitHelper::discoverVersion($params['path']);
        if (!
$ret && !$vulnerable) {
        
$ret $this->setParameter('versionOk''1');
        if (
$ret) {
            return 
$ret;
        }
        } else {
        list (
$ret$isActive) = $this->isActive();
        if (
$ret) {
            return 
$ret;
        }
        if (
$isActive) {
            
/* Force upgrade from site admin to see vulnerable-version warning */
            
return GalleryCoreApi::error(ERROR_CONFIGURATION_REQUIRED);
        }
        }
    }

    return 
null;
    }

    
/**
     * @see GalleryModule::performFactoryRegistrations
     */
    
function performFactoryRegistrations() {
    
/* Register our graphics class with the factory */
    
$ret GalleryCoreApi::registerFactoryImplementation(
        
'GalleryToolkit''ImageMagickToolkit''ImageMagick',
        
'modules/imagemagick/classes/ImageMagickToolkit.class''imagemagick'null);
    if (
$ret) {
        return 
$ret;
    }

    return 
null;
    }

    
/**
     * @see GalleryModule::activate
     */
    
function activate($postActivationEvent=true) {
    
/* Load any classes we require */
    
GalleryCoreApi::requireOnce(
        
'modules/imagemagick/classes/ImageMagickToolkitHelper.class');

    
/* Find out what operations and properties we have available to us */
    
list ($ret$results) =
        
ImageMagickToolkitHelper::getOperationsAndProperties();
    if (
$ret) {
        return array(
$retnull);
    }

    list (
$ret$priority) = GalleryCoreApi::getToolkitPriorityById('ImageMagick');
    if (
$ret) {
        return array(
$retnull);
    }

    if (!
$priority) {
        list (
$ret$priority) = GalleryCoreApi::getMaximumManagedToolkitPriority();
        if (
$ret) {
        return array(
$retnull);
        }
        
$priority min($priority 140);
    }

    foreach (
$results['operations'] as $operation => $info) {
        
$outputMimeType = isset($info['outputMimeType']) ? $info['outputMimeType'] : '';
        
$ret GalleryCoreApi::registerToolkitOperation('ImageMagick',
                                
$info['mimeTypes'],
                                
$operation,
                                
$info['params'],
                                
$info['description'],
                                
$outputMimeType$priority);
        if (
$ret) {
        return array(
$retnull);
        }
    }

    
/* Check CMYK colorspace support */
    
list ($ret$cmykSupport) = $this->getParameter('cmykSupport');
    if (
$ret) {
        return array(
$retnull);
    }
    if (!isset(
$results['properties']['colorspace']) && $cmykSupport != 'none') {
        
$ret $this->setParameter('cmykSupport'$cmykSupport 'none');
        if (
$ret) {
        return array(
$retnull);
        }
    } else if (isset(
$results['properties']['colorspace']) && $cmykSupport == 'none') {
        
$ret $this->setParameter('cmykSupport'$cmykSupport 'off');
        if (
$ret) {
        return array(
$retnull);
        }
    }

    foreach (
$results['properties'] as $property => $info) {
        if (
$property == 'colorspace' && $cmykSupport != 'on') {
        
/* Skip colorspace if this feature isn't turned on */
        
continue;
        }
        
$ret GalleryCoreApi::registerToolkitProperty('ImageMagick',
                               
$info['mimeTypes'],
                               
$property,
                               
$info['type'],
                               
$info['description']);
        if (
$ret) {
        return array(
$retnull);
        }
    }

    
/* Save some platform specific ImageMagick parameters */
    
$ret ImageMagickToolkitHelper::savePlatformParameters();
    if (
$ret) {
        return array(
$retnull);
    }

    list (
$ret$redirect) = parent::activate($postActivationEvent);
    if (
$ret) {
        return array(
$retnull);
    }

    return array(
null$redirect);
    }

    
/**
     * @see GalleryModule::needsConfiguration
     */
    
function needsConfiguration() {
    
/* This module requires all fields to be filled out before it can be activated. */
    
foreach (array('path''jpegQuality''cmykSupport''versionOk') as $key) {
        list (
$ret$value) = $this->getParameter($key);
        if (
$ret) {
        return array(
$retnull);
        }

        if (empty(
$value)) {
        return array(
nulltrue);
        }
    }

    return array(
nullfalse);
    }

    
/**
     * @see GalleryModule::autoConfigure
     */
    
function autoConfigure() {
    global 
$gallery;

    list (
$ret$needsConfiguration) = $this->needsConfiguration();
    if (
$ret) {
        return array(
$retfalse);
    }

    if (!
$needsConfiguration) {
        return array(
nulltrue);
    }

    
/* Try a bunch of likely seeming paths to see if any of them work. */
    
$platform =& $gallery->getPlatform();
    
$slash $platform->getDirectorySeparator();

    
/*
     * Start with system paths.  Tack on a trailing slash if necessary,
     * then tack on other likely paths, based on our OS
     */
    
$paths = array();
    if (
GalleryUtilities::isA($platform'WinNtPlatform')) {
        foreach (
explode(';'getenv('PATH')) as $path) {
        
$path trim($path);
        if (empty(
$path)) {
            continue;
        }
        if (
$path{strlen($path)-1} != $slash) {
            
$path .= $slash;
        }
        
$paths[] = $path;
        }

        
/*
         * Double-quoting the paths removes any ambiguity about the
         * double-slashes being escaped or not
         */
        
$paths[] = "C:\\Program Files\\ImageMagick\\";
        
$paths[] = "C:\\apps\ImageMagick\\";
        
$paths[] = "C:\\ImageMagick\\";
        
$paths[] = "C:\\ImageMagick\\VisualMagick\\bin\\";
        
$paths[] = "C:\\cygwin\\bin\\";
    } else if (
GalleryUtilities::isA($platform'UnixPlatform')) {
        foreach (
explode(':'getenv('PATH')) as $path) {
        
$path trim($path);
        if (empty(
$path)) {
            continue;
        }
        if (
$path{strlen($path)-1} != $slash) {
            
$path .= $slash;
        }
        
$paths[] = $path;
        }

        
$paths[] = '/usr/bin/';
        
$paths[] = '/usr/local/bin/';
        
$paths[] = '/bin/';
        
$paths[] = '/sw/bin/';
    } else {
        return array(
nullfalse);
    }

    
/* Load any classes we require */
    
GalleryCoreApi::requireOnce(
        
'modules/imagemagick/classes/ImageMagickToolkitHelper.class');

    
/* Now try each path in turn to see which ones work */
    
foreach ($paths as $path) {
        list (
$ret$testResults) = ImageMagickToolkitHelper::testBinaries($path);
        if (
$ret) {
        
/* This path failed.  Continue with the next one */
        
continue;
        }

        
$failCount 0;
        foreach (
$testResults as $testResult) {
        
/* All tests should work, else this path is not a valid one */
        
if (!$testResult['success']) {
            
$failCount++;
        }
        }

        if (
$failCount == 0) {
        
/* We have a winner */
        
$ret GalleryCoreApi::setPluginParameter('module''imagemagick''path'$path);
        if (
$ret) {
            return array(
$retfalse);
        }

        
/* Force admin to visit site admin to view warning for vulnerable version */
        
list ($ret$version$vulnerable) =
            
ImageMagickToolkitHelper::discoverVersion($path);
        if (!
$ret && !$vulnerable) {
            
$ret GalleryCoreApi::setPluginParameter('module''imagemagick',
                                  
'versionOk''1');
            if (
$ret) {
            return array(
$retfalse);
            }
        } else {
            
$vulnerable true;
        }
        return array(
null, !$vulnerable);
        }
    }

    return array(
nullfalse);
    }

    
/**
     * @see GalleryModule::getSiteAdminViews
     */
    
function getSiteAdminViews() {
    return array(
null,
             array(array(
'name' => $this->translate('ImageMagick'),
                 
'view' => 'imagemagick.AdminImageMagick')));
    }

    
/**
     * @see GalleryModule::getConfigurationView
     */
    
function getConfigurationView() {
    return 
'imagemagick.AdminImageMagick';
    }
}
?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

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

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

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