!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/bin/   drwxrwxr-x
Free 14.24 GB of 61.93 GB (22.99%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     translation.php (5.44 KB)      -rwxrwxr-x
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/env php
<?php

/* This is the base directory of the simpleSAMLphp installation. */
$baseDir dirname(dirname(__FILE__));

/* Add library autoloader. */
require_once($baseDir '/lib/_autoload.php');

if (
count($argv) !== 3) {
    echo 
"Wrong number of parameters. Run:   " $argv[0] . " [pulldef,push,pull] filename\n"; exit;
}

$action $argv[1];
$file $argv[2];

$translationconfig SimpleSAML_Configuration::getConfig('translation.php');

$application $translationconfig->getString('application''simplesamlphp');
$base $translationconfig->getString('baseurl') . '/module.php/translationportal/';

if (!
preg_match('/^(.*?)(?:\.(definition|translation))?\.(json|php)/'$file$match))
    throw new 
Exception('Illlegal file name. Must end on (definition|translation).json');
$fileWithoutExt $match[1];
if (!empty(
$match[2])) {
    
$type $match[2];
} else {
    
$type 'definition';
}

$basefile basename($fileWithoutExt);


echo 
'Action: [' $action']' "\n";
echo 
'Application: [' $application']' "\n";
echo 
'File orig: [' $file ']'"\n";
echo 
'File base: [' $basefile ']'"\n";


switch(
$action) {
    case 
'pulldef':
        
        
$content SimpleSAML_Utilities::fetch($base 'export.php?aid=' $application '&type=def&file=' $basefile);
        
file_put_contents($fileWithoutExt '.definition.json' $content);
        break;
        
    case 
'pull':

        
$content SimpleSAML_Utilities::fetch($base 'export.php?aid=' $application '&type=translation&file=' $basefile);
        
file_put_contents($fileWithoutExt '.translation.json' $content);
        break;
    
    case 
'push':

        
#$content = file_get_contents($base . 'export.php?aid=' . $application . '&type=translation&file=' . $basefile);
        #file_put_contents($fileWithoutExt . '.translation.json' , $content);
        
push($file$basefile$application$type);
        
        break;
        
    case 
'convert':

        include(
$file);
        
$definition json_format(convert_definition($lang));
        
$translation json_format(convert_translation($lang)) . "\n";
        
file_put_contents($fileWithoutExt '.definition.json' $definition);
        
file_put_contents($fileWithoutExt '.translation.json' $translation);
        break;

    
    default:
        throw new 
Exception('Unknown action [' $action ']');
}

function 
ssp_readline($prompt '') {
    echo 
$prompt;
    return 
rtrimfgetsSTDIN ), "\n" );
}

function 
convert_definition($data) {
    
$new = array();
    foreach(
$data AS $key => $value) {
        
$new[$key] = array('en' => $value['en']);
    }
    return 
$new;
}

function 
convert_translation($data) {
    foreach (
$data as &$value) {
        unset(
$value['en']);
    }
    return 
$data;
}

function 
push($file$fileWithoutExt$aid$type) {
    
    if (!
file_exists($file)) throw new Exception('Could not find file: ' $file);
    
    
$fileContent file_get_contents($file);
    
    
    global 
$baseDir;
    
    require_once(
$baseDir '/modules/oauth/libextinc/OAuth.php');


    
    
$translationconfig SimpleSAML_Configuration::getConfig('translation.php');

    
$baseurl $translationconfig->getString('baseurl');
    
$key $translationconfig->getString('key');
    
$secret $translationconfig->getString('secret');
    
    echo 
'Using OAuth to authenticate you to the translation portal' "\n";
    
$consumer = new sspmod_oauth_Consumer($key$secret);

    
    
    
$storage = new sspmod_core_Storage_SQLPermanentStorage('oauth_clientcache');
    
    
$cachedAccessToken $storage->get('accesstoken''translation''');
    
$accessToken NULL;
    if (empty(
$cachedAccessToken)) {

        
// Get the request token
        
$requestToken $consumer->getRequestToken($baseurl '/module.php/oauth/requestToken.php');
        echo 
"Got a request token from the OAuth service provider [" $requestToken->key "] with the secret [" $requestToken->secret "]\n";

        
// Authorize the request token
        
$url $consumer->getAuthorizeRequest($baseurl '/module.php/oauth/authorize.php'$requestTokenFALSE);

        echo(
'Go to this URL to authenticate/authorize the request: ' $url "\n");
        
system('open ' $url);

        
ssp_readline('Click enter when you have completed the authorization step using your web browser...');

        
// Replace the request token with an access token
        
$accessToken $consumer->getAccessToken$baseurl '/module.php/oauth/accessToken.php'$requestToken);
        echo 
"Got an access token from the OAuth service provider [" $accessToken->key "] with the secret [" $accessToken->secret "]\n";
        
        
$storage->set('accesstoken''translation'''$accessToken);
        
    } else {
        
$accessToken $cachedAccessToken['value'];
        echo 
'Successfully read OAuth Access Token from cache [' $accessToken->key ']' "\n";
    }

    
$pushURL $baseurl '/module.php/translationportal/push.php';
    
$request = array('data' => base64_encode($fileContent), 'file' => $fileWithoutExt'aid' => $aid'type' => $type);
    
    
$result $consumer->postRequest($pushURL$accessToken$request);
    
    echo 
$result;
    
    
}

/**
 * Format an associative array as a json string.
 *
 * @param mixed $data  The data that should be json encoded.
 * @param string $indentation  The current indentation level. Optional.
 * @return string  The json encoded data.
 */
function json_format($data$indentation '') {
    
assert('is_string($indentation)');

    if (!
is_array($data)) {
        return 
json_encode($data);
    }

    
$ret "{";
    
$first TRUE;
    foreach (
$data as $k => $v) {
        
$k json_encode((string)$k);
        
$v json_format($v$indentation "\t");

        if (
$first) {
            
$ret .= "\n";
            
$first FALSE;
        } else {
            
$ret .= ",\n";
        }

        
$ret .= $indentation "\t" $k ': ' $v;
    }
    
$ret .= "\n" $indentation '}';

    return 
$ret;
}

?>

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