!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)

E:\nuevo\php\pear\File\   drwxrwxrwx
Free 1.19 GB of 239.26 GB (0.5%)
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:     HtAccess.php (12.67 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* vim: set ts=4 sw=4: */

/*
+-----------------------------------------------------------------------+
| Copyright (c) 2002-2007 Mika Tuupola                                  |
| All rights reserved.                                                  |
|                                                                       |
| Redistribution and use in source and binary forms, with or without    |
| modification, are permitted provided that the following conditions    |
| are met:                                                              |
|                                                                       |
| o Redistributions of source code must retain the above copyright      |
|   notice, this list of conditions and the following disclaimer.       |
| o Redistributions in binary form must reproduce the above copyright   |
|   notice, this list of conditions and the following disclaimer in the |
|   documentation and/or other materials provided with the distribution.|
|                                                                       |
| THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS   |
| "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT     |
| LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT  |
| OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT      |
| LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT   |
| (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  |
|                                                                       |
+-----------------------------------------------------------------------+
| Author: Mika Tuupola <tuupola@appelsiini.net>                         |
+-----------------------------------------------------------------------+
*/

/* $Id: HtAccess.php,v 1.17 2007/08/01 08:04:30 tuupola Exp $ */

require_once 'PEAR.php' ;

/**
* Class for manipulating .htaccess files
*
* A class which provided common methods to manipulate Apache / NCSA
* style .htaccess files.
*
* Example 1 (modifying existing file):
*
* $h = new File_HtAccess('.htaccess');
* $h->load();
* $h->setRequire('valid-user');
* $h->save();
*
* Example 2 (modifying existing file):
*
* $h = new File_HtAccess('.htaccess');
* $h->load();
* $h->addRequire('newuser');
* $h->save();
*
* Example 3 (creating a new file):
*
* $params['authname']      = 'Private';
* $params['authtype']      = 'Basic';
* $params['authuserfile']  = '/path/to/.htpasswd';
* $params['authgroupfile'] = '/path/to/.htgroup';
* $params['require']       = array('group', 'admins');
*
* $h = new File_HtAccess('/path/to/.htaccess', $params);
* $h->save();
*
* @author  Mika Tuupola <tuupola@appelsiini.net>
* @access  public
* @version 1.0.0
* @package File_HtAccess
* @category File
*/

class File_HtAccess {

    var 
$file;
    var 
$authname;
    var 
$authtype;
    var 
$authuserfile;
    var 
$authgroupfile;
    var 
$authdigestfile;
    var 
$authdigestgroupfile;
    var 
$require    = array();
    var 
$additional = array();

    
/**
    * Constructor
    *
    * @access public
    * @param  string $file
    * @param  array  $params 
    * @return object File_HtAccess
    */
       
    
function File_HtAccess($file='.htaccess'$params='') {

        
$this->file $file;
        
$this->setProperties($params);

    }
    
    
/**
    * Load the given .htaccess file
    *
    * @access public
    * @return mixed   true on success, PEAR_Error on failure
    */

    
function load() {

        
$retval true;
        
        
$fd = @fopen($this->getFile(), 'r');
        if (
$fd) {
            while (
$buffer fgets($fd4096)) {
                
$buffer trim($buffer);
                if (
$buffer) {
                    
$data split(' '$buffer2);
                    if (
preg_match('/AuthName/i'$data[0])) {
                       
$this->setAuthName($data[1]);

                    } elseif (
preg_match('/AuthType/i'$data[0])) {
                       
$this->setAuthType($data[1]);                
                    
                    } elseif (
preg_match('/AuthUserFile/i'$data[0])) {
                       
$this->setAuthUserFile($data[1]);            
                           
                    } elseif (
preg_match('/AuthGroupFile/i'$data[0])) {
                       
$this->setAuthGroupFile($data[1]);

                    } elseif (
preg_match('/AuthDigestFile/i'$data[0])) {
                       
$this->setAuthDigestFile($data[1]);

                    } elseif (
preg_match('/AuthDigestGroupFile/i'$data[0])) {
                       
$this->setAuthDigestGroupFile($data[1]);

                    } elseif (
preg_match('/Require/i'$buffer)) {
                       
$require split(' '$data[1]);
                       
$this->addRequire($require);
                    } elseif (
trim($buffer)) {
                       
$this->addAdditional($buffer);
                    }
                }
            }
            
fclose($fd);

        } else {
            
$retval PEAR::raiseError('Could not open ' $this->getFile() . 
                                       
' for reading.');
        }

        return(
$retval);

    }

    
/**
    * Set class properties
    *
    * @access public
    * @param  array  $params
    */

    
function setProperties($params) {
        if (
is_array($params)) {
            foreach (
$params as $key => $value) {
                
$method 'set' $key;
                
$this->$method($value);
            }
        }
    }
    
    
/**
    * Set the value of authname property
    * 
    * @access public
    * @param  string $name
    */

    
function setAuthName($name='Restricted') {
        
$this->authname $name;
    }

    
/**
    * Set the value of authtype propery
    *
    * @access public
    * @param  string $type
    */

    
function setAuthType($type='Basic') {
        
$this->authtype $type;
    }

    
/**
    * Set the value of authuserfile propery
    *
    * @access public
    * @param  string $file
    */

    
function setAuthUserFile($file='') {
        
$this->authuserfile $file;
    }

    
/**
    * Set the value of authgroupfile property
    *
    * @access public
    * @param  string $file
    */

    
function setAuthGroupFile($file='') {
        
$this->authgroupfile $file;
    }

    
/**
    * Set the value of authdigestfile property
    *
    * @access public
    * @param  string $file
    */

    
function setAuthDigestFile($file='') {
        
$this->authdigestfile $file;
    }

    
/**
    * Set the value of authdigestgroupfile property
    *
    * @access public
    * @param  string $file
    */

    
function setAuthDigestGroupFile($file='') {
        
$this->authdigestgroupfile $file;
    }

    
/**
    * Set the value of require property
    *
    * Parameter can be given as an array or string. If given as a string
    * the value will be exploded in to an array by using space as a 
    * separator.
    *
    * @access public
    * @param  mixed $require
    */

    
function setRequire($require='') {
        if (
is_array($require)) {
            
$this->require $require;
        } else {
            
$this->require explode(' '$require);
        }
    }

    
/**
    * Add a value to require property
    *
    * @access public
    * @param  string $require
    */
    
function addRequire($require) {
        if (
is_array($require)) {
            
$merge array_merge($this->getRequire(), $require);
            
$merge array_unique($merge);
            
$merge array_merge($merge);
            
$this->setRequire($merge);
        } else {
            
$this->require[] = $require;
        }

    }

    
/**
    * Delete a value from require property
    *
    * @access public
    * @param  string $require
    */
    
function delRequire($require) {
        
$pos array_search($require$this->require);
        unset(
$this->require[$pos]);
    }

    
/**
    * Set the value of additional property
    *
    * Additional property is used for all the extra things in .htaccess
    * file which don't have specific accessor method for them. 
    *
    * @access public
    * @param  array  $additional
    */

    
function setAdditional($additional='') {
        
$this->additional = (array)$additional;
    }

    
/**
    * Add a value to additional property
    *
    * @access public
    * @param  string $additional
    */

    
function addAdditional($additional='') {
        
$this->additional[] = $additional;
    }
    
    
/**
    * Set the value of file property
    *
    * @access public
    * @param  file   $file
    */

    
function setFile($file) {
        
$this->file $file;
    }
    
    
/**
    * Get the value of authname property
    *
    * @access public
    * @return string  
    */

    
function getAuthName() {
        return(
$this->authname);
    }

    
/**
    * Get the value of authtype property
    *
    * @access public
    * @return string  
    */

    
function getAuthType() {
        return(
$this->authtype);
    }
    
    
/**
    * Get the value of authuserfile property
    *
    * @access public
    * @return string  
    */

    
function getAuthUserFile() {
        return(
$this->authuserfile);
    }

    
/**
    * Get the value of authgroupfile property
    *
    * @access public
    * @return string  
    */


    
function getAuthGroupFile() {
        return(
$this->authgroupfile);
    }

    
/**
    * Get the value of authdigestfile property
    *
    * @access public
    * @return string  
    */

    
function getAuthDigestFile() {
        return(
$this->authdigestfile);
    }

    
/**
    * Get the value of authdigestgroupfile property
    *
    * @access public
    * @return string  
    */

    
function getAuthDigestGroupFile() {
        return(
$this->authdigestgroupfile);
    }

    
/**
    * Get the value(s) of require property
    *
    * @access public
    * @param  string $type whether to return an array or string
    * @return mixed  string or array, defaults to an array  
    */
 
    
function getRequire($type='') {
        
$retval $this->require;

        if (
$type == 'string') {
            
$retval implode($retval' ');
        }
        return(
$retval);
    }

    
/**
    * Get the value(s) of additional property
    *
    * @access public
    * @param  string $type whether to return an array or string
    * @return mixed  string or array, defaults to an array  
    */

    
function getAdditional($type='') {
        
$retval $this->additional;

        if (
$type == 'string') {
            
$retval implode($retval"\n");
        }
        return(
$retval);
    }

    
/**
    * Get the value of file property
    *
    * @access public
    * @return string  
    */

    
function getFile() {
        return(
$this->file);
    }

    
/**
    * Save the .htaccess file
    *
    * @access public
    * @return mixed      true on success, PEAR_Error on failure
    * @see    PEAR_Error
    */

    
function save() {

        
$retval true;

        
$str  $this->getContent();
        
        
$fd = @fopen($this->getFile(), 'w');
        if (
$fd) {
            
fwrite($fd$strstrlen($str));
        } else {
            
$retval PEAR::raiseError('Could not open ' $this->getFile() . 
                                       
' for writing.');

        }

        return(
$retval);
        
    }

    
/**
    * Returns the .htaccess File content
    *
    * @access public
    * @return string
    */

    
function getContent() {

        
$retval  '';
        
        if (
$this->getAuthName()) {
            
$retval .= 'AuthName '     $this->getAuthName() . "\n";
        }
        if (
$this->getAuthType()) {
            
$retval .= 'AuthType '     $this->getAuthType() . "\n";
        }
        if (
'basic' == strtolower($this->getAuthType())) {
            
$retval .= 'AuthUserFile ' $this->getAuthUserFile() . "\n";
            if (
trim($this->getAuthGroupFile())) {
                
$retval .= 'AuthGroupFile ' $this->getAuthGroupFile() . "\n";   
            }
        } elseif (
'digest' == strtolower($this->getAuthType())) {
            
$retval .= 'AuthDigestFile ' $this->getAuthDigestFile() . "\n";
            if (
trim($this->getAuthDigestGroupFile())) {
                
$retval .= 'AuthDigestGroupFile ' $this->getAuthDigestGroupFile() . "\n";   
            }
        }
        if (
trim($this->getRequire('string'))) {
            
$retval .= 'Require ' $this->getRequire('string') . "\n";
        }
        
$retval .= $this->getAdditional('string') . "\n";
        
        return(
$retval);
    }

}

?>

:: 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.0312 ]--