!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:\dmz\php\pear\   drwxrwxrwx
Free 4.11 GB of 39.52 GB (10.4%)
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:     Mail.php (9.67 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 *  PEAR's Mail:: interface.
 *
 * PHP versions 4 and 5
 *
 * LICENSE:
 *
 * Copyright (c) 2002-2007, Richard Heyes
 * 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.
 * o The names of the authors may not be used to endorse or promote
 *   products derived from this software without specific prior written
 *   permission.
 *
 * 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.
 *
 * @category    Mail
 * @package     Mail
 * @author      Chuck Hagenbuch <chuck@horde.org>
 * @copyright   1997-2010 Chuck Hagenbuch
 * @license     http://opensource.org/licenses/bsd-license.php New BSD License
 * @version     CVS: $Id: Mail.php 294747 2010-02-08 08:18:33Z clockwerx $
 * @link        http://pear.php.net/package/Mail/
 */

require_once 'PEAR.php';

/**
 * PEAR's Mail:: interface. Defines the interface for implementing
 * mailers under the PEAR hierarchy, and provides supporting functions
 * useful in multiple mailer backends.
 *
 * @access public
 * @version $Revision: 294747 $
 * @package Mail
 */
class Mail
{
    
/**
     * Line terminator used for separating header lines.
     * @var string
     */
    
var $sep "\r\n";

    
/**
     * Provides an interface for generating Mail:: objects of various
     * types
     *
     * @param string $driver The kind of Mail:: object to instantiate.
     * @param array  $params The parameters to pass to the Mail:: object.
     * @return object Mail a instance of the driver class or if fails a PEAR Error
     * @access public
     */
    
function &factory($driver$params = array())
    {
        
$driver strtolower($driver);
        @include_once 
'Mail/' $driver '.php';
        
$class 'Mail_' $driver;
        if (
class_exists($class)) {
            
$mailer = new $class($params);
            return 
$mailer;
        } else {
            return 
PEAR::raiseError('Unable to find class for driver ' $driver);
        }
    }

    
/**
     * Implements Mail::send() function using php's built-in mail()
     * command.
     *
     * @param mixed $recipients Either a comma-seperated list of recipients
     *              (RFC822 compliant), or an array of recipients,
     *              each RFC822 valid. This may contain recipients not
     *              specified in the headers, for Bcc:, resending
     *              messages, etc.
     *
     * @param array $headers The array of headers to send with the mail, in an
     *              associative array, where the array key is the
     *              header name (ie, 'Subject'), and the array value
     *              is the header value (ie, 'test'). The header
     *              produced from those values would be 'Subject:
     *              test'.
     *
     * @param string $body The full text of the message body, including any
     *               Mime parts, etc.
     *
     * @return mixed Returns true on success, or a PEAR_Error
     *               containing a descriptive error message on
     *               failure.
     *
     * @access public
     * @deprecated use Mail_mail::send instead
     */
    
function send($recipients$headers$body)
    {
        if (!
is_array($headers)) {
            return 
PEAR::raiseError('$headers must be an array');
        }

        
$result $this->_sanitizeHeaders($headers);
        if (
is_a($result'PEAR_Error')) {
            return 
$result;
        }

        
// if we're passed an array of recipients, implode it.
        
if (is_array($recipients)) {
            
$recipients implode(', '$recipients);
        }

        
// get the Subject out of the headers array so that we can
        // pass it as a seperate argument to mail().
        
$subject '';
        if (isset(
$headers['Subject'])) {
            
$subject $headers['Subject'];
            unset(
$headers['Subject']);
        }

        
// flatten the headers out.
        
list(, $text_headers) = Mail::prepareHeaders($headers);

        return 
mail($recipients$subject$body$text_headers);
    }

    
/**
     * Sanitize an array of mail headers by removing any additional header
     * strings present in a legitimate header's value.  The goal of this
     * filter is to prevent mail injection attacks.
     *
     * @param array $headers The associative array of headers to sanitize.
     *
     * @access private
     */
    
function _sanitizeHeaders(&$headers)
    {
        foreach (
$headers as $key => $value) {
            
$headers[$key] =
                
preg_replace('=((<CR>|<LF>|0x0A/%0A|0x0D/%0D|\\n|\\r)\S).*=i',
                             
null$value);
        }
    }

    
/**
     * Take an array of mail headers and return a string containing
     * text usable in sending a message.
     *
     * @param array $headers The array of headers to prepare, in an associative
     *              array, where the array key is the header name (ie,
     *              'Subject'), and the array value is the header
     *              value (ie, 'test'). The header produced from those
     *              values would be 'Subject: test'.
     *
     * @return mixed Returns false if it encounters a bad address,
     *               otherwise returns an array containing two
     *               elements: Any From: address found in the headers,
     *               and the plain text version of the headers.
     * @access private
     */
    
function prepareHeaders($headers)
    {
        
$lines = array();
        
$from null;

        foreach (
$headers as $key => $value) {
            if (
strcasecmp($key'From') === 0) {
                include_once 
'Mail/RFC822.php';
                
$parser = new Mail_RFC822();
                
$addresses $parser->parseAddressList($value'localhost'false);
                if (
is_a($addresses'PEAR_Error')) {
                    return 
$addresses;
                }

                
$from $addresses[0]->mailbox '@' $addresses[0]->host;

                
// Reject envelope From: addresses with spaces.
                
if (strstr($from' ')) {
                    return 
false;
                }

                
$lines[] = $key ': ' $value;
            } elseif (
strcasecmp($key'Received') === 0) {
                
$received = array();
                if (
is_array($value)) {
                    foreach (
$value as $line) {
                        
$received[] = $key ': ' $line;
                    }
                }
                else {
                    
$received[] = $key ': ' $value;
                }
                
// Put Received: headers at the top.  Spam detectors often
                // flag messages with Received: headers after the Subject:
                // as spam.
                
$lines array_merge($received$lines);
            } else {
                
// If $value is an array (i.e., a list of addresses), convert
                // it to a comma-delimited string of its elements (addresses).
                
if (is_array($value)) {
                    
$value implode(', '$value);
                }
                
$lines[] = $key ': ' $value;
            }
        }

        return array(
$fromjoin($this->sep$lines));
    }

    
/**
     * Take a set of recipients and parse them, returning an array of
     * bare addresses (forward paths) that can be passed to sendmail
     * or an smtp server with the rcpt to: command.
     *
     * @param mixed Either a comma-seperated list of recipients
     *              (RFC822 compliant), or an array of recipients,
     *              each RFC822 valid.
     *
     * @return mixed An array of forward paths (bare addresses) or a PEAR_Error
     *               object if the address list could not be parsed.
     * @access private
     */
    
function parseRecipients($recipients)
    {
        include_once 
'Mail/RFC822.php';

        
// if we're passed an array, assume addresses are valid and
        // implode them before parsing.
        
if (is_array($recipients)) {
            
$recipients implode(', '$recipients);
        }

        
// Parse recipients, leaving out all personal info. This is
        // for smtp recipients, etc. All relevant personal information
        // should already be in the headers.
        
$addresses Mail_RFC822::parseAddressList($recipients'localhost'false);

        
// If parseAddressList() returned a PEAR_Error object, just return it.
        
if (is_a($addresses'PEAR_Error')) {
            return 
$addresses;
        }

        
$recipients = array();
        if (
is_array($addresses)) {
            foreach (
$addresses as $ob) {
                
$recipients[] = $ob->mailbox '@' $ob->host;
            }
        }

        return 
$recipients;
    }

}

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