!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:\Intranet\C\xampp\php\PEAR\Net\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.36%)
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:     Curl.php (21.52 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/* vim: set expandtab tabstop=4 shiftwidth=4: */

/**
 * Net_Curl
 *
 * LICENSE: This source file is subject to version 3.0 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_0.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category   Net
 * @package    Net_Curl
 * @author     David Costa <gurugeek@php.net>
 * @author     Sterling Hughes <sterling@php.net>                           
 * @author     Joe Stump <joe@joestump.net> 
 * @copyright  1997-2005 The PHP Group
 * @license    http://www.php.net/license/3_0.txt  PHP License 3.0
 * @version    CVS: $Revision: 1.11 $
 * @link       http://pear.php.net/package/Net_Curl
 */

require_once('PEAR.php');

class 
Net_Curl 
{
    
// {{{ Public Properties
    /**
     * The URL for cURL to work with
     *
     * @var string $url
     * @access public
     */
    
var $url;
  
    
/**
     * The Username for standard HTTP Authentication
     *
     * @var string $username
     * @access public
     */
    
var $username '';
    
    
/**
     * The Password for standard HTTP Authentication
     *
     * @var string $password
     * @access public
     */
    
var $password ''
    
    
/**
     * The SSL version for the transfer
     *
     * @var integer $sslVersion
     * @access public
     */
    
var $sslVersion;
    
    
/**
     * The filename of the SSL certificate
     *
     * @var string $sslCert
     * @access public
     */
    
var $sslCert;
    
    
/**
     * The password corresponding to the certificate
     * in the $sslCert property
     *
     * @var string $sslCertPasswd
     * @access public
     */
    
var $sslCertPasswd;
  
    
/**
     * User Agent string when making an HTTP request
     *
     * @var string $userAgent
     * @access public
     */
    
var $userAgent;
    
    
/**
     * Whether or not to include the header in the results
     * of the CURL transfer
     *
     * @var boolean $header
     */
    
var $header false;
    
    
/**
     * Whether or not to output debug information while executing a
     * curl transfer
     *
     * @var boolean $verbose
     * @access public
     */
    
var $verbose false;
    
    
/**
     * Whether or not to display a progress meter for the current transfer
     *
     * @var boolean $progress
     * @access public
     */
    
var $progress false;
    
    
/**
     * Whether or not to suppress error messages
     *
     * @var boolean $mute
     * @access public
     */
    
var $mute false;
    
    
/**
     * Whether or not to follow HTTP Location headers.
     *
     * @var boolean $followLocation
     * @access public
     */
    
var $followLocation true;

    
/**
     * Whether or not to follow HTTP Location headers.
     * 
     * @var boolean $follow_location
     * @access public
     * @deprecated
     */
    
var $follow_location false;
  
    
/**
     * Time allowed for current transfer, in seconds.  0 means no limit
     *
     * @var int $timeout
     * @access public
     */
    
var $timeout 0;
  
    
/**
     * Whether or not to return the results of the
     * current transfer
     *
     * @var boolean $returnTransfer
     * @access public
     */
    
var $returnTransfer true;

    
/**
     * Whether or not to return the results of the
     * current transfer
     *
     * @var boolean $return_transfer
     * @access public
     * @deprecated
     */
    
var $return_transfer false;
    
    
/**
     * The type of transfer to perform (ie. 'POST', 'GET', 'PUT', etc)
     *
     * @var string $type
     * @access public
     */
    
var $type;
    
    
/**
     * The file to upload
     *
     * @var string $file
     * @access public
     */
    
var $file;
    
    
/**
     * The file size of the file pointed to by the $file
     * property
     *
     * @var integer $fileSize
     * @access public
     */
    
var $fileSize;

    
/**
     * The file size of the file pointed to by the $file
     * property
     *
     * @var integer $file_size
     * @access public
     * @deprecated
     */
    
var $file_size false;

    
    
/**
     * The cookies to send to the remote site
     *
     * @var array $cookies
     * @access public
     */
    
var $cookies = array();
    
    
/**
     * Additional HTTP headers to send to the remote site
     *
     * @var array $httpHeaders
     * @access public
     */
    
var $httpHeaders null;

    
/**
     * Additional HTTP headers to send to the remote site
     *
     * @var array $http_headers
     * @access public
     * @deprecated
     */
    
var $http_headers false;
    
    
/**
     * The fields to send in a 'POST' request
     *
     * @var array $fields
     * @access public
     */
    
var $fields;
    
    
/**
     * The proxy server to go through
     *
     * @var string $proxy
     * @access public
     */
    
var $proxy;
    
    
/**
     * The username for the Proxy server
     *
     * @var string $proxyUser
     * @access public
     */
    
var $proxyUser;
    
    
/**
     * The password for the Proxy server
     *
     * @var string $proxyPassword
     * @access public
     */
    
var $proxyPassword;

    
/**
     * $verifyPeer
     *
     * FALSE to stop CURL from verifying the peer's certificate.
     * Alternate certificates to verify against can be specified
     * with the CURLOPT_CAINFO option or a certificate directory
     * can be specified with the CURLOPT_CAPATH option.
     * CURLOPT_SSL_VERIFYHOST may also need to be TRUE or FALSE
     * if CURLOPT_SSL_VERIFYPEER is disabled (it defaults to 2).
     *
     * @var boolean $verifyPeer
     * @access public
     */
    
var $verifyPeer true;

    
/**
     * $verifyHost
     *
     * 0 : to stop CURL from verifying the host's certificate.
     * 1 : to check the existence of a common name in the SSL peer certificate.
     * 2 : to check the existence of a common name  and also verify that it 
     *     matches the hostname provided.
     *
     * @var bool $verifyHost
     * @access public
     */
    
var $verifyHost 2;

    
/**
     * $caInfo
     *
     * Set value for CURLOPT_CAINFO. The name of a file holding one or more 
     * certificates to verify the peer with. This only makes sense when used 
     * in combination with CURLOPT_SSL_VERIFYPEER. curl-ca-bundle.crt is 
     * avaible on the Curl website http://curl.haxx.se/ for download inside 
     * the packages.
     *
     * @var string $caInfo
     * @access public
     */
    
var $caInfo '';

    
/**
     * $caPath
     *
     * Set value for CURLOPT_CAPATH. A directory that holds multiple CA 
     * certificates. Use this option alongside CURLOPT_SSL_VERIFYPEER.
     *
     * @var string $caPath
     * @access public
     */
    
var $caPath;
    
// }}}
    // {{{ Private Properties
    /**
     * The current curl handle
     *
     * @var resource $_ch
     * @access private
     * @see Net_Curl::create()
     */
    
var $_ch null;

    
/**
     * The file upload resource
     *
     * The CURLOPT_INFILE requires a file resource and not just a file name. 
     * This is used by execute to open the file.
     *
     * @var resource $_fp
     * @access private
     * @see Net_Curl::execute()
     */
    
var $_fp null;
    
// }}}
    // {{{ __construct($url = '', $userAgent = '')
    /**
     * The Net_Curl PHP 5.x constructor, called when a new Net_Curl object
     * is initialized (also called via 4.x constructor)
     *
     * @param string $url The URL to fetch (can be set using the $url property as well)
     * @param string $userAgent The userAgent string (can be set using the $userAgent property as well)
     * @access public
     * @author Joe Stump <joe@joestump.net> 
     */
    
function __construct($url ''$userAgent '')
    {
        if (
is_string($url) && strlen($url)) {
            
$this->url $url;
        }
      
        if (
is_string($userAgent) && strlen($userAgent)) {
            
$this->userAgent $userAgent;
        }
    }
    
// }}}
    // {{{ Net_Curl($url = '', $userAgent = '')
    /**
     * Net_Curl
     *
     * PHP 4.x constructor.
     *
     * @access public
     * @author Joe Stump <joe@joestump.net>
     */
    
function Net_Curl($url ''$userAgent '')
    {
        
$this->__construct($url,$userAgent);          
    }
    
// }}}
    // {{{ execute()
    /**
     * Executes a prepared CURL transfer
     *
     * Run this function to execute your cURL request. If all goes well you
     * should get a string (the output from the remote host regarding your
     * request) or true (if you choose to output directly to the browser). If
     * something fails then PEAR_Error is returned.
     *
     * <code>
     * <?php
     *     require_once('Net/Curl.php');
     *     
     *     $curl = & new Net_Curl('http://www.example.com');
     *     $curl->fields = array('foo' => '1', 'bar' => 'apple');
     *     $result = $curl->execute();
     *     if (!PEAR::isError($result)) {
     *         echo $result;
     *     }
     * ?>
     * </code>
     *
     * @access public
     * @author Sterling Hughes <sterling@php.net>
     * @author Joe Stump <joe@joestump.net> 
     * @return PEAR_Error on failure, true/result on success
     * @since  PHP 4.0.5
     */
    
function execute()
    {
        
// Create cURL handle if it hasn't already been created
        
if (!is_resource($this->_ch)) {
            
$result $this->create();
            if (
PEAR::isError($result)) {
                return 
$result;
            }
        }

        
// Map the deprecated variables and throw a bunch of errors
        
$this->_mapDeprecatedVariables();

        
// Default return value is true.
        
$ret true;

        
// Basic stuff
        
$ret curl_setopt($this->_chCURLOPT_URL,    $this->url);
        
$ret curl_setopt($this->_chCURLOPT_HEADER$this->header);
      
        
// Whether or not to return the transfer contents
        
if ($this->returnTransfer === true) {
            
$ret curl_setopt($this->_chCURLOPT_RETURNTRANSFERtrue);
        }
      
        
// HTTP Authentication
        
if ($this->username != '') {
            
$ret curl_setopt($this->_chCURLOPT_USERPWD$this->username ':' $this->password);
        }
      
        
// SSL Checks
        
if (isset($this->sslVersion)) {
            
$ret curl_setopt($this->_chCURLOPT_SSLVERSION$this->sslVersion);
        }
      
        if (isset(
$this->sslCert)) {
            
$ret curl_setopt($this->_chCURLOPT_SSLCERT$this->sslCert);
        }
      
        if (isset(
$this->sslCertPasswd)) {
            
$ret curl_setopt($this->_chCURLOPT_SSLCERTPASSWD$this->sslCertPasswd);
        }
      
        
// Proxy Related checks
        
if (isset($this->proxy)) {
            
$ret curl_setopt($this->_chCURLOPT_PROXY$this->proxy);
        }
  
        if (isset(
$this->proxyUser) || isset($this->proxyPassword)) {
            
$ret curl_setopt($this->_chCURLOPT_PROXYUSERPWD$this->proxyUser ':' $this->proxyPassword);
        }

        if (
is_bool($this->verifyPeer)) {
            if(!
$this->setOption(CURLOPT_SSL_VERIFYPEER,$this->verifyPeer)) {
                return 
PEAR::raiseError('Error setting CURLOPT_SSL_VERIFYPEER');
            } 
        }

        if (
is_numeric($this->verifyHost) && $this->verifyHost >= &&
            
$this->verifyHost <= 2) {
            if(!
$this->setOption(CURLOPT_SSL_VERIFYHOST,$this->verifyHost)) {
                return 
PEAR::raiseError('Error setting CURLOPT_SSL_VERIFYPEER');
            } 
        }

        if (
is_bool($this->verifyPeer) && $this->verifyPeer == true) {
            if (isset(
$this->caInfo) && strlen($this->caInfo)) {
                if (
file_exists($this->caInfo)) {
                    if (!
$this->setOption(CURLOPT_CAINFO,$this->caInfo)) { 
                        return 
PEAR::raiseError('Error setting CURLOPT_CAINFO');
                    }
                } else {
                    return 
PEAR::raiseError('Could not find CA info: '.$this->caInfo);
                }
            }

            if (isset(
$this->caPath) && is_string($this->caPath)) {
                if (!
$this->setOption(CURLOPT_CAPATH,$this->caPath)) {
                    return 
PEAR::raiseError('Error setting CURLOPT_CAPATH');
                }
            }
        }
      
        
// Transfer type
        
if (isset($this->type)) {
            switch (
strtolower($this->type)) {
            case 
'post':
                
$ret curl_setopt($this->_chCURLOPT_POSTtrue);
                break;
            case 
'put':
                
$ret curl_setopt($this->_chCURLOPT_PUTtrue);
                break;
            }
        }
      
        
// Transfer upload, etc. related
        
if (isset($this->file)) {
            if (!
file_exists($this->file)) {
                return 
PEAR::raiseError('File does not exist: '.$this->file);
            }

            
$this->_fp fopen($this->file,'r');
            if (!
is_resource($this->_fp)) {
                return 
PEAR::raiseError('Could not open file: '.$this->file);
            }

            if (!isset(
$this->fileSize)) {
                
$this->fileSize filesize($this->file);
            }
        
            
$ret curl_setopt($this->_chCURLOPT_INFILE$this->_fp);
            
$ret curl_setopt($this->_chCURLOPT_INFILESIZE$this->fileSize);
            
$ret curl_setopt($this->_chCURLOPT_UPLOADtrue);
        }
      
        if (isset(
$this->fields)) {
            if (!isset(
$this->type)) {
                
$this->type 'post';
                
$ret curl_setopt($this->_chCURLOPT_POSTtrue);
            }

            
// If fields is an array then turn it into a string. Somtimes
            // cURL doesn't like fields as an array.
            
if (is_array($this->fields)) {
                
$sets = array();
                foreach (
$this->fields as $key => $val) {
                    
$sets[] = $key '=' urlencode($val);
                } 

                
$fields implode('&',$sets);
            } else {
                
$fields $this->fields;
            }
        
            
$ret curl_setopt($this->_chCURLOPT_POSTFIELDS$fields);
        }
      
        
// Error related
        
if ($this->progress === true) {
            
$ret curl_setopt($this->_chCURLOPT_PROGRESStrue);
        }
      
        if (
$this->verbose === true) {
            
$ret curl_setopt($this->_chCURLOPT_VERBOSEtrue);
        }
      
        if (
$this->mute !== true) {
            
$ret curl_setopt($this->_chCURLOPT_MUTEfalse);
        }
  
        
// If a Location: header is passed then follow it
        
$ret curl_setopt($this->_chCURLOPT_FOLLOWLOCATION$this->followLocation);
  
        
// If a timeout is set and is greater then zero then set it
        
if (is_numeric($this->timeout) && $this->timeout 0) {
            
$ret curl_setopt($this->_chCURLOPT_TIMEOUT$this->timeout);
        }
  
        if (isset(
$this->userAgent)) {
            
$ret curl_setopt($this->_chCURLOPT_USERAGENT$this->userAgent);
        }
  
        
// Cookies
        
if (is_array($this->cookies) && count($this->cookies)) {
            
$cookieData '';
            foreach (
$this->cookies as $name => $value) {
                
$cookieData .= $name '=' $value ';';
            }
      
            
$ret curl_setopt($this->_chCURLOPT_COOKIE$cookieData);
        }
      
        
// Other HTTP headers
        
if ($this->httpHeaders !== null) {
            if (
is_array($this->httpHeaders)) {
                
$ret curl_setopt($this->_chCURLOPT_HTTPHEADER$this->httpHeaders);
            } else {
                return 
PEAR::raiseError('Net_Curl::$httpHeaders must be an array');
            }
        }
  
        
$ret curl_exec($this->_ch);

        
// Close the file before we return anything
        
if (is_resource($this->_fp)) {
            
fclose($this->_fp);
        }

        if (
curl_errno($this->_ch)) { 
            return 
PEAR::raiseError(curl_error($this->_ch), curl_errno($this->_ch));
        }

        
// Check to make sure we get a 2XX/3XX code and not a 404 or something.
        
$info $this->getInfo();
        if (!isset(
$info['http_code'])) {
            return 
PEAR::raiseError('Unknown or invalid HTTP response');
        } else {
            
$type substr($info['http_code'],0,1);
            if (
$type != && $type != 3) {
                return 
PEAR::raiseError('Unexpected HTTP code: '.$info['http_code']);
            }
        }
      
        return 
$ret;
    }
    
// }}}
    // {{{ setOption($option, $value)
    /**
     * setOption
     *
     * Set a option for your cURL session. Please note that the cURL handler
     * is NOT created before execute(). This is for error checking purposes.
     * You should use setOption() in the following manner:
     *
     * <code>
     * <?php
     *
     * require_once('Net/Curl.php'); 
     * $curl = & new Net_Curl('http://www.example.com');
     * $check = $curl->create();
     * if (!PEAR::isError($check)) {
     *     $curl->setOption(CURLOPT_FOO,'bar');
     *     $result = $curl->execute();
     *     if (!PEAR::isError($result)) {
     *         echo $result;
     *     }
     * }
     *
     * ?>
     * </code> 
     * 
     * @author Joe Stump <joe@joestump.net>
     * @access public
     * @param int $option cURL constant (ie. CURLOPT_URL)
     * @param mixed $value
     * @return boolean
     */
    
function setOption($option$value)
    {
        if (
is_resource($this->_ch)) {
            return 
curl_setopt($this->_ch$option$value);
        }

        return 
false;
    }
    
// }}}
    // {{{ getInfo()
    /**
     * getInfo
     *
     * Returns the info from the cURL session. PEAR_Error if you try and run
     * this before you execute the session.
     *
     * @author Joe Stump <joe@joestump.net> 
     * @access public
     * @return mixed PEAR_Error if there is no resource, info on success
     */
    
function getInfo()
    {
        if (
is_resource($this->_ch)) {
            return 
curl_getinfo($this->_ch);
        }

        return 
PEAR::isError('cURL handler does not exist!');
    }
    
// }}}
    // {{{ create()
    /**
     * create
     *
     * Create a cURL resource. If curl_init() doesn't exist or we could not
     * create a resource it will error out.
     *
     * @author Joe Stump <joe@joestump.net>
     * @return mixed PEAR_Error on failure, true on success
     */
    
function create()
    {
        if (!
function_exists('curl_init')) {
            return 
PEAR::raiseError('Function curl_init() not found');
        }

        
$this->_ch curl_init();
        if (!
is_resource($this->_ch)) {
            return 
PEAR::raiseError('Could not initialize cURL handler');
        }

        return 
true;
    }
    
// }}}
    // {{{ verboseAll()
    /**
     * Set a verbose output
     *
     * Turns on super debugging mode by not suppressing errors, turning on
     * verbose mode, showing headers and displaying progress.
     *
     * @access public
     * @author David Costa <gurugeek@php.net>
     * @return void
     */
    
function verboseAll() 
    {
        
$this->verbose true;
        
$this->mute false;
        
$this->header true;
        
$this->progress true;
    }
    
// }}}
    // {{{ verbose_all()
    /**
     * Set a verbose output
     *
     * @access public
     * @author David Costa <gurugeek@php.net>
     * @deprecated
     */
    
function verbose_all()
    {
        
$this->verboseAll();
        
PEAR::raiseError('Net_Curl::verbose_all() is deprecated! Please use Net_Curl::verboseAll()'." <br />\n",null,PEAR_ERROR_PRINT);
        
    }
    
// }}}
    // {{{ close()
    /**
     * Closes the curl transfer and finishes the object (kinda ;)
     *
     * @access public
     * @author Sterling Hughes <sterling@php.net>
     * @return void
     * @since  PHP 4.0.5
     */
    
function close()
    {
        if (
is_resource($this->_ch)) {
            
curl_close($this->_ch);
        }
    }
    
// }}}
    // {{{ _mapDeprecatedVariables()
    /**
     * _mapDeprecatedVariables
     *
     * Maps deprecated variables into the appropriate places. It also throws
     * the necessary notices.
     *
     * @author Joe Stump <joe@joestump.net>
     * @access private
     * @return void
     */
    
function _mapDeprecatedVariables() {
        
$bad = array();
        if (
$this->follow_location !== false) {
            if (
$this->follow_location 0) {
                
$this->followLocation true;
            } else {
                
$this->followLocation false;
            }

            
$bad[] = array('follow_location','followLocation');
        }

        if (
$this->return_transfer !== false) {
            if (
$this->return_transfer 0) {
                
$this->returnTransfer true;
            } else {
                
$this->returnTransfer false;
            }

            
$bad[] = array('return_transfer','returnTransfer');
        }

        if (
$this->file_size !== false) {
            
$this->fileSize $this->file_size;
            
$bad[] = array('file_size','fileSize');
        }

        if (
$this->http_headers !== false) {
            
$this->httpHeaders $this->http_headers;
            
$bad[] = array('http_headers','httpHeaders');
        }

        foreach (
$bad as $map) {
            
PEAR::raiseError('Net_Curl::$'.$map[0].' is deprecated! Please use Net_Curl::$'.$map[1]." instead! <br />\n",null,PEAR_ERROR_PRINT);
        }
    }
    
// {{{ __destruct()
    /**
     * __destruct 
     * 
     * PHP 5.x destructor. Runs Net_Curl::close() to make sure we close our
     * cURL connection.
     * 
     * @author Joe Stump <joe@joestump.net>  
     * @see Net_Curl::close()
     */
    
function __destruct()
    {
        
$this->close();
    }
    
// }}}
}

?>

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