!C99Shell v.2.1 [PHP 7 Update] [1.12.2019]!

Software: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/5.4.16. PHP/5.4.16 

uname -a: Linux roko-bkp 3.10.0-1160.102.1.el7.x86_64 #1 SMP Tue Oct 17 15:42:21 UTC 2023 x86_64 

uid=48(apache) gid=48(apache) groups=48(apache),1003(webmaster) 

Safe-mode: OFF (not secure)

/var/www/html/admin/webmail/program/include/   drwxr-xr-x
Free 9.4 GB of 93.48 GB (10.05%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     session.inc (6.78 KB)      -rwxr-xr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/*
 +-----------------------------------------------------------------------+
 | program/include/session.inc                                           |
 |                                                                       |
 | This file is part of the RoundCube Webmail client                     |
 | Copyright (C) 2005-2009, RoundCube Dev. - Switzerland                 |
 | Licensed under the GNU GPL                                            |
 |                                                                       |
 | PURPOSE:                                                              |
 |   Provide database supported session management                       |
 |                                                                       |
 +-----------------------------------------------------------------------+
 | Author: Thomas Bruederli <roundcube@gmail.com>                        |
 +-----------------------------------------------------------------------+

 $Id: session.inc 2573 2009-05-29 19:10:24Z alec $

*/

$GLOBALS['rcube_session_unsets'] = array();

function 
rcube_sess_open($save_path$session_name)
{
  return 
true;
}


function 
rcube_sess_close()
{
  return 
true;
}


// read session data
function rcube_sess_read($key)
{
  global 
$SESS_CHANGED$SESS_CLIENT_IP;
  
  
$DB rcmail::get_instance()->get_dbh();
  
  
$sql_result $DB->query(
    
"SELECT vars, ip, " $DB->unixtimestamp('changed') . " AS changed
     FROM " 
get_table_name('session') . "
     WHERE  sess_id=?"
,
    
$key);

  if (
$sql_arr $DB->fetch_assoc($sql_result)) {
    
$SESS_CHANGED $sql_arr['changed'];
    
$SESS_CLIENT_IP $sql_arr['ip'];

    if (
strlen($sql_arr['vars']))
      return 
$sql_arr['vars'];
  }

  return 
false;
}
  

// save session data
function rcube_sess_write($key$vars)
{
  
$DB rcmail::get_instance()->get_dbh();
  
  
$now $DB->fromunixtime(time());

  
$sql_result $DB->query(
    
"SELECT vars FROM " get_table_name('session') . "
     WHERE  sess_id=?"
$key);

  if (
$sql_arr $DB->fetch_assoc($sql_result)) {

    
$a_oldvars rcube_sess_unserialize($sql_arr['vars']);
    foreach ((array)
$GLOBALS['rcube_session_unsets'] as $k)
      unset(
$a_oldvars[$k]);

    
$DB->query(
      
"UPDATE " get_table_name('session') . "
       SET    vars=?, changed= " 
$now "
       WHERE  sess_id=?"
,
      
rcube_sess_serialize(array_merge($a_oldvarsrcube_sess_unserialize($vars))),
      
$key);
  }
  else {
    
$DB->query(
      
"INSERT INTO " get_table_name('session') . "
       (sess_id, vars, ip, created, changed)
       VALUES (?, ?, ?, " 
$now ", " $now .")",
      
$key,
      
$vars,
      (string)
$_SERVER['REMOTE_ADDR']);
  }

  
$GLOBALS['rcube_session_unsets'] = array();
  return 
true;
}


// unset session variable
function rcube_sess_unset($var=NULL)
{
  if (empty(
$var))
    return 
rcube_sess_destroy(session_id());

  
$GLOBALS['rcube_session_unsets'][] = $var;
  unset(
$_SESSION[$var]);

  return 
true;
}


// serialize session data
function rcube_sess_serialize($vars)
{
  
$data '';
  if (
is_array($vars))
    foreach (
$vars as $var=>$value)
      
$data .= $var.'|'.serialize($value);
  else
    
$data 'b:0;';
  return 
$data;
}


// unserialize session data
// http://www.php.net/manual/en/function.session-decode.php#56106
function rcube_sess_unserialize($str)
{
  
$str = (string)$str;
  
$endptr strlen($str);
  
$p 0;

  
$serialized '';
  
$items 0;
  
$level 0;

  while (
$p $endptr) {
    
$q $p;
    while (
$str[$q] != '|')
      if (++
$q >= $endptr) break 2;

    if (
$str[$p] == '!') {
      
$p++;
      
$has_value false;
    } else {
      
$has_value true;
    }

    
$name substr($str$p$q $p);
    
$q++;

    
$serialized .= 's:' strlen($name) . ':"' $name '";';

    if (
$has_value) {
      for (;;) {
        
$p $q;
        switch (
strtolower($str[$q])) {
          case 
'n'/* null */
          
case 'b'/* boolean */
          
case 'i'/* integer */
          
case 'd'/* decimal */
            
do $q++;
            while ( (
$q $endptr) && ($str[$q] != ';') );
            
$q++;
            
$serialized .= substr($str$p$q $p);
            if (
$level == 0) break 2;
            break;
          case 
'r'/* reference  */
            
$q+= 2;
            for (
$id ''; ($q $endptr) && ($str[$q] != ';'); $q++) $id .= $str[$q];
            
$q++;
            
$serialized .= 'R:' . ($id 1) . ';'/* increment pointer because of outer array */
            
if ($level == 0) break 2;
            break;
          case 
's'/* string */
            
$q+=2;
            for (
$length=''; ($q $endptr) && ($str[$q] != ':'); $q++) $length .= $str[$q];
            
$q+=2;
            
$q+= (int)$length 2;
            
$serialized .= substr($str$p$q $p);
            if (
$level == 0) break 2;
            break;
          case 
'a'/* array */
          
case 'o'/* object */
            
do $q++;
            while ( (
$q $endptr) && ($str[$q] != '{') );
            
$q++;
            
$level++;
            
$serialized .= substr($str$p$q $p);
            break;
          case 
'}'/* end of array|object */
            
$q++;
            
$serialized .= substr($str$p$q $p);
            if (--
$level == 0) break 2;
            break;
          default:
            return 
false;
        }
      }
    } else {
      
$serialized .= 'N;';
      
$q+= 2;
    }
    
$items++;
    
$p $q;
  }

  return 
unserialize'a:' $items ':{' $serialized '}' );
}


// handler for session_destroy()
function rcube_sess_destroy($key)
{
  
$DB rcmail::get_instance()->get_dbh();
  
  
$DB->query("DELETE FROM " get_table_name('session') . " WHERE sess_id=?"$key);

  return 
true;
}


// garbage collecting function
function rcube_sess_gc($maxlifetime)
{
  
$rcmail rcmail::get_instance();
  
$DB $rcmail->get_dbh();

  
// just delete all expired sessions
  
$DB->query("DELETE FROM " get_table_name('session') . "
    WHERE changed < " 
$DB->fromunixtime(time() - $maxlifetime));

  if (
$rcmail->config->get('enable_caching'))
    
rcmail_cache_gc();

  
rcmail_temp_gc();

  return 
true;
}


function 
rcube_sess_regenerate_id()
{
  
$randval "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

  for (
$random ""$i=1$i <= 32$i++) {
    
$random .= substr($randvalrand(0,(strlen($randval) - 1)), 1);
  }

  
// use md5 value for id or remove capitals from string $randval
  
$random md5($random);

  
// delete old session record
  
rcube_sess_destroy(session_id());

  
session_id($random);

  
$cookie   session_get_cookie_params();
  
$lifetime $cookie['lifetime'] ? time() + $cookie['lifetime'] : 0;

  
rcmail::setcookie(session_name(), $random$lifetime);

  return 
true;
}


// set custom functions for PHP session management
session_set_save_handler('rcube_sess_open''rcube_sess_close''rcube_sess_read''rcube_sess_write''rcube_sess_destroy''rcube_sess_gc');

?>

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v.2.1 [PHP 7 Update] [1.12.2019] maintained by KaizenLouie and updated by cermmik | C99Shell Github (MySQL update) | Generation time: 0.0041 ]--