!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/zt-tsou.org.ua/modules-alien/ajaxfilemanager/plugins/access.ajxp_conf/   drwxr-xr-x
Free 117.59 GB of 200.55 GB (58.64%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     class.ajxp_confAccessDriver.php (20.24 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/**
 * @package info.ajaxplorer.plugins
 * 
 * Copyright 2007-2009 Charles du Jeu
 * 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 : The "admin" driver, to make use of the GUI to manage AjaXplorer settings.
 */
class ajxp_confAccessDriver extends AbstractAccessDriver 
{    
    function 
ajxp_confAccessDriver($driverName){
        
parent::AbstractAccessDriver($driverNameINSTALL_PATH."/plugins/access.ajxp_conf/ajxp_confActions.xml"null);
    }
    
    function 
switchAction($action$httpVars$fileVars){
        if(!isSet(
$this->actions[$action])) return;
        
$loggedUser AuthService::getLoggedUser();
        if(
ENABLE_USERS && !$loggedUser->isAdmin()) return ;
        
        if(
$action == "edit"){
            if(isSet(
$httpVars["sub_action"])){
                
$action $httpVars["sub_action"];
            }
        }
        
        switch(
$action)
        {            
            
//------------------------------------
            //    BASIC LISTING
            //------------------------------------
            
case "ls":
                
$rootNodes = array(
                    
"users" => array("LABEL" => "Users""ICON" => "yast_kuser.png"),
                    
"repositories" => array("LABEL" => "Repositories""ICON" => "folder_red.png"),
                    
"logs" => array("LABEL" => "Logs""ICON" => "toggle_log.png"),
                    
"diagnostic" => array("LABEL" => "Diagnostic""ICON" => "susehelpcenter.png")
                );
                
$dir = (isset($httpVars["dir"])?$httpVars["dir"]:"");
                
$splits split("/"$dir);
                if(
count($splits)){
                    if(
$splits[0] == ""array_shift($splits);
                    if(
count($splits)) $strippedDir strtolower(urldecode($splits[0]));
                    else 
$strippedDir "";
                }                
                if(
array_key_exists($strippedDir$rootNodes)){
                    
AJXP_XMLWriter::header();
                    if(
$strippedDir == "users"){
                        
$this->listUsers();
                    }else if(
$strippedDir == "repositories"){
                        
$this->listRepositories();
                    }else if(
$strippedDir == "logs"){
                        
$this->listLogFiles($dir);
                    }else if(
$strippedDir == "diagnostic"){
                        
$this->printDiagnostic();
                    }
                    
AJXP_XMLWriter::close();
                    exit(
1);
                }else{
                    
AJXP_XMLWriter::header();
                    print(
'<columns switchGridMode="filelist"><column messageString="Configuration Data" attributeName="ajxp_label" sortType="String"/></columns>');
                    foreach (
$rootNodes as $key => $data){
                        
$src '';
                        if(
$key == "logs"){
                            
$src 'src="content.php?dir='.$key.'"';
                        }
                        print 
'<tree text="'.$data["LABEL"].'" icon="'.$data["ICON"].'" filename="/'.$key.'" parentname="/" '.$src.' />';
                    }
                    
AJXP_XMLWriter::close();
                    exit(
1);
                }
            break;
            
            case 
"edit_user" 
                
$confStorage ConfService::getConfStorageImpl();    
                
$userId $httpVars["user_id"];    
                
$userObject $confStorage->createUserObject($userId);        
                
//print_r($userObject);
                
AJXP_XMLWriter::header("admin_data");
                
AJXP_XMLWriter::sendUserData($userObjecttrue);
                
                
// Add WALLET DATA : DEFINITIONS AND VALUES
                
print("<drivers>");
                print(
ConfService::availableDriversToXML("user_param"));
                print(
"</drivers>");                
                
$wallet $userObject->getPref("AJXP_WALLET");
                if(
is_array($wallet) && count($wallet)>0){
                    print(
"<user_wallet>");
                    foreach(
$wallet as $repoId => $options){
                        foreach (
$options as $optName=>$optValue){
                            print(
"<wallet_data repo_id=\"$repoId\" option_name=\"$optName\" option_value=\"$optValue\"/>");
                        }
                    }
                    print(
"</user_wallet>");
                }
                
$editPass = ($userId!="guest"?"1":"0");
                
$authDriver ConfService::getAuthDriverImpl();
                if(!
$authDriver->passwordsEditable()){
                    
$editPass "0";
                }
                print(
"<edit_options edit_pass=\"".$editPass."\" edit_admin_right=\"".(($userId!="guest"&&$userId!=$loggedUser->getId())?"1":"0")."\" edit_delete=\"".(($userId!="guest"&&$userId!=$loggedUser->getId()&&$authDriver->usersEditable())?"1":"0")."\"/>");
                
AJXP_XMLWriter::close("admin_data");
                exit(
1) ;
            break;
            
            case 
"create_user" :
                if(!isset(
$_GET["new_user_login"]) || $_GET["new_user_login"] == "" ||!isset($_GET["new_user_pwd"]) || $_GET["new_user_pwd"] == "")
                {
                    
AJXP_XMLWriter::header();
                    
AJXP_XMLWriter::sendMessage(null"Wrong Arguments!");
                    
AJXP_XMLWriter::close();
                    exit(
1);                        
                }
                
$forbidden = array("guest""share");
                if(
AuthService::userExists($_GET["new_user_login"]) || in_array($_GET["new_user_login"], $forbidden))
                {
                    
AJXP_XMLWriter::header();
                    
AJXP_XMLWriter::sendMessage(null"User already exists, please choose another login!");
                    
AJXP_XMLWriter::close();
                    exit(
1);                                    
                }
                if(
get_magic_quotes_gpc()) $_GET["new_user_login"] = stripslashes($_GET["new_user_login"]);
                
$_GET["new_user_login"] = str_replace("'"""$_GET["new_user_login"]);
                
                
$confStorage ConfService::getConfStorageImpl();        
                
$newUser $confStorage->createUserObject($_GET["new_user_login"]);
                
$newUser->save();
                
AuthService::createUser($_GET["new_user_login"], $_GET["new_user_pwd"]);
                
AJXP_XMLWriter::header();
                
AJXP_XMLWriter::sendMessage("User created successfully"null);
                
AJXP_XMLWriter::reloadFileList($_GET["new_user_login"]);
                
AJXP_XMLWriter::close();
                exit(
1);                                        
            break;
                                
            case 
"change_admin_right" :
                
$userId $_GET["user_id"];
                
$confStorage ConfService::getConfStorageImpl();        
                
$user $confStorage->createUserObject($userId);
                
$user->setAdmin(($_GET["right_value"]=="1"?true:false));
                
$user->save();
                
AJXP_XMLWriter::header();
                
AJXP_XMLWriter::sendMessage("Changed admin right for user ".$_GET["user_id"], null);
                
AJXP_XMLWriter::reloadFileList(false);
                
AJXP_XMLWriter::close();
                exit(
1);
            break;
        
            case 
"update_user_right" :
                if(!isSet(
$_GET["user_id"]) 
                    || !isSet(
$_GET["repository_id"]) 
                    || !isSet(
$_GET["right"])
                    || !
AuthService::userExists($_GET["user_id"]))
                {
                    
AJXP_XMLWriter::header();
                    
AJXP_XMLWriter::sendMessage(null"Wrong arguments");
                    print(
"<update_checkboxes user_id=\"".$_GET["user_id"]."\" repository_id=\"".$_GET["repository_id"]."\" read=\"old\" write=\"old\"/>");
                    
AJXP_XMLWriter::close();
                    exit(
1);
                }
                
$confStorage ConfService::getConfStorageImpl();        
                
$user $confStorage->createUserObject($_GET["user_id"]);
                
$user->setRight($_GET["repository_id"], $_GET["right"]);
                
$user->save();
                
$loggedUser AuthService::getLoggedUser();
                if(
$loggedUser->getId() == $user->getId()){
                    
AuthService::updateUser($user);
                }
                
AJXP_XMLWriter::header();
                
AJXP_XMLWriter::sendMessage("Changed right for user ".$_GET["user_id"], null);
                print(
"<update_checkboxes user_id=\"".$_GET["user_id"]."\" repository_id=\"".$_GET["repository_id"]."\" read=\"".$user->canRead($_GET["repository_id"])."\" write=\"".$user->canWrite($_GET["repository_id"])."\"/>");
                
AJXP_XMLWriter::reloadRepositoryList();
                
AJXP_XMLWriter::close();
                exit(
1);
            break;
        
            case 
"save_repository_user_params" 
                
$userId $_GET["user_id"];
                if(
$userId == $loggedUser->getId()){
                    
$user $loggedUser;
                }else{
                    
$confStorage ConfService::getConfStorageImpl();        
                    
$user $confStorage->createUserObject($userId);
                }
                
$wallet $user->getPref("AJXP_WALLET");
                if(!
is_array($wallet)) $wallet = array();
                
$repoID $_GET["repository_id"];
                if(!
array_key_exists($repoID$wallet)){
                    
$wallet[$repoID] = array();
                }
                
$options $wallet[$repoID];
                
$this->parseParameters($_GET$options$userId);
                
$wallet[$repoID] = $options;
                
$user->setPref("AJXP_WALLET"$wallet);
                
$user->save();
                
                if(
$loggedUser->getId() == $user->getId()){
                    
AuthService::updateUser($user);
                }
                
AJXP_XMLWriter::header();
                
AJXP_XMLWriter::sendMessage("Saved data for user ".$_GET["user_id"], null);
                
AJXP_XMLWriter::close();
                exit(
1);    
            break;
            
            case 
"update_user_pwd" 
                if(!isSet(
$_GET["user_id"]) || !isSet($_GET["user_pwd"]) || !AuthService::userExists($_GET["user_id"]) || trim($_GET["user_pwd"]) == "")
                {
                    
AJXP_XMLWriter::header();
                    
AJXP_XMLWriter::sendMessage(null"Wrong Arguments!");
                    
AJXP_XMLWriter::close();
                    exit(
1);            
                }
                
$res AuthService::updatePassword($_GET["user_id"], $_GET["user_pwd"]);
                
AJXP_XMLWriter::header();
                if(
$res === true)
                {
                    
AJXP_XMLWriter::sendMessage("Password changed successfully for user ".$_GET["user_id"], null);
                }
                else 
                {
                    
AJXP_XMLWriter::sendMessage(null"Cannot update password : $res");
                }
                
AJXP_XMLWriter::close();
                exit(
1);                        
            break;
    
            case  
"get_drivers_definition":
                
                
AJXP_XMLWriter::header("drivers");
                print(
ConfService::availableDriversToXML("param"));
                
AJXP_XMLWriter::close("drivers");
                exit(
1);
                
            break;
            
            case 
"create_repository" 
            
                
$options = array();
                
$repDef $_GET;
                unset(
$repDef["get_action"]);
                
$this->parseParameters($repDef$options);
                if(
count($options)){
                    
$repDef["DRIVER_OPTIONS"] = $options;
                }
                
// NOW SAVE THIS REPOSITORY!
                
$newRep ConfService::createRepositoryFromArray(0$repDef);
                if(
is_file(INSTALL_PATH."/server/tests/plugins/test.ajxp_".$newRep->getAccessType().".php"))
                {
                    
chdir(INSTALL_PATH."/server/tests/plugins");
                    include(
INSTALL_PATH."/server/tests/plugins/test.ajxp_".$newRep->getAccessType().".php");
                    
$className "ajxp_".$newRep->getAccessType();
                    
$class = new $className();
                    
$result $class->doRepositoryTest($newRep);
                    if(!
$result){
                        
AJXP_XMLWriter::header();
                        
AJXP_XMLWriter::sendMessage(null$class->failedInfo);
                        
AJXP_XMLWriter::close();
                        exit(
1);
                    }
                }
                
$res ConfService::addRepository($newRep);
                
AJXP_XMLWriter::header();
                if(
$res == -1){
                    
AJXP_XMLWriter::sendMessage(null"The conf directory is not writeable");
                }else{
                    
AJXP_XMLWriter::sendMessage("Successfully created repository"null);
                    
AJXP_XMLWriter::reloadFileList($newRep->getDisplay());
                    
AJXP_XMLWriter::reloadRepositoryList();
                }
                
AJXP_XMLWriter::close();
                exit(
1);
                
            
            break;
            
            case 
"edit_repository" 
                
$repId $httpVars["repository_id"];
                
$repList ConfService::getRootDirsList();
                
//print_r($repList);
                
AJXP_XMLWriter::header("admin_data");        
                if(!isSet(
$repList[$repId])){
                    
AJXP_XMLWriter::close("admin_data");
                    exit(
1);
                }
                
$repository $repList[$repId];                
                
$nested = array();
                print(
"<repository index=\"$repId\"");
                foreach (
$repository as $name => $option){
                    if(!
is_array($option)){                    
                        if(
is_bool($option)){
                            
$option = ($option?"true":"false");
                        }
                        print(
$name=\"".SystemTextEncoding::toUTF8(Utils::xmlEntities($option))."\" ");
                    }else if(
is_array($option)){
                        
$nested[] = $option;
                    }
                }
                if(
count($nested)){
                    print(
">");
                    foreach (
$nested as $option){
                        foreach (
$option as $key => $optValue){
                            if(
is_bool($optValue)){
                                
$optValue = ($optValue?"true":"false");
                            }
                            print(
"<param name=\"$key\" value=\"$optValue\"/>");
                        }
                    }
                    print(
"</repository>");
                }else{
                    print(
"/>");
                }
                print(
ConfService::availableDriversToXML("param"$repository->accessType));
                
AJXP_XMLWriter::close("admin_data");
                exit(
1);
            break;
            
            case 
"edit_repository_label" 
            case 
"edit_repository_data" 
                
$repId $_GET["repository_id"];
                
$repo ConfService::getRepositoryById($repId);
                
$res 0;
                if(isSet(
$_GET["newLabel"])){
                    
$repo->setDisplay(SystemTextEncoding::fromPostedFileName($_GET["newLabel"]));
                    
$res ConfService::replaceRepository($repId$repo);
                }else{
                    
$options = array();
                    
$this->parseParameters($_GET$options);
                    if(
count($options)){
                        foreach (
$options as $key=>$value$repo->addOption($key$value);
                    }
                    if(
is_file(INSTALL_PATH."/server/tests/plugins/test.ajxp_".$repo->getAccessType().".php")){
                        
chdir(INSTALL_PATH."/server/tests/plugins");
                        include(
INSTALL_PATH."/server/tests/plugins/test.ajxp_".$repo->getAccessType().".php");
                        
$className "ajxp_".$repo->getAccessType();
                        
$class = new $className();
                        
$result $class->doRepositoryTest($repo);
                        if(!
$result){
                            
AJXP_XMLWriter::header();
                            
AJXP_XMLWriter::sendMessage(null$class->failedInfo);
                            
AJXP_XMLWriter::close();
                            exit(
1);
                        }
                    }
                    
                    
ConfService::replaceRepository($repId$repo);
                }
                
AJXP_XMLWriter::header();
                if(
$res == -1){
                    
AJXP_XMLWriter::sendMessage(null"Error while trying to edit repository");
                }else{
                    
AJXP_XMLWriter::sendMessage("Successfully edited repository"null);                    
                    
AJXP_XMLWriter::reloadFileList((isSet($_GET["newLabel"])?SystemTextEncoding::fromPostedFileName($_GET["newLabel"]):false));
                    
AJXP_XMLWriter::reloadRepositoryList();
                }
                
AJXP_XMLWriter::close();        
                exit(
1);
            
            case 
"delete" :
                if(isSet(
$httpVars["repository_id"])){
                    
$repId $httpVars["repository_id"];
                    
//if(get_magic_quotes_gpc()) $repLabel = stripslashes($repLabel);
                    
$res ConfService::deleteRepository($repId);
                    
AJXP_XMLWriter::header();
                    if(
$res == -1){
                        
AJXP_XMLWriter::sendMessage(null"The conf directory is not writeable");
                    }else{
                        
AJXP_XMLWriter::sendMessage("Successfully deleted repository"null);                        
                        
AJXP_XMLWriter::reloadFileList(false);
                        
AJXP_XMLWriter::reloadRepositoryList();
                    }
                    
AJXP_XMLWriter::close();        
                    exit(
1);
                }else{
                    
$forbidden = array("guest""share");
                    if(!isset(
$httpVars["user_id"]) || $httpVars["user_id"]=="" 
                        
|| in_array($_GET["user_id"], $forbidden)
                        || 
$loggedUser->getId() == $httpVars["user_id"])
                    {
                        
AJXP_XMLWriter::header();
                        
AJXP_XMLWriter::sendMessage(null"Wrong Arguments!");
                        
AJXP_XMLWriter::close();
                        exit(
1);                                    
                    }
                    
$res AuthService::deleteUser($httpVars["user_id"]);
                    
AJXP_XMLWriter::header();
                    
AJXP_XMLWriter::sendMessage("User successfully erased"null);
                    
AJXP_XMLWriter::reloadFileList($httpVars["user_id"]);
                    
AJXP_XMLWriter::close();
                    exit(
1);
                    
                }
            break;
            
            
            default:
            break;
        }

        return;
    }
    
    
    function 
listUsers(){
        print 
'<columns switchGridMode="filelist"><column messageString="User Name" attributeName="ajxp_label" sortType="String"/><column messageString="Is Admin" attributeName="isAdmin" sortType="String"/></columns>';        
        if(!
ENABLE_USERS) return ;
        
$users AuthService::listUsers();
        
$loggedUser AuthService::getLoggedUser();        
        foreach (
$users as $userObject){
            
$isAdmin $userObject->isAdmin();
            
$userId $userObject->getId();
            
$icon "user".($userId=="guest"?"_guest":($isAdmin?"_admin":""));
            print 
'<tree 
                text="'
.$userId.'"
                isAdmin="'
.($isAdmin?"True":"False").'" 
                icon="'
.$icon.'.png" 
                openicon="'
.$icon.'.png" 
                filename="/users/'
.$userId.'" 
                parentname="/users" 
                is_file="1" 
                ajxp_mime="user'
.(($userId!="guest"&&$userId!=$loggedUser->getId())?"_editable":"").'"
                />'
;
        }
    }
    
    function 
listRepositories(){
        print 
'<columns switchGridMode="filelist"><column messageString="Repository Label" attributeName="ajxp_label" sortType="String"/><column messageString="Access Type" attributeName="accessType" sortType="String"/></columns>';        
        
$repos ConfService::getRepositoriesList();
        foreach (
$repos as $repoIndex => $repoObject){
            if(
$repoObject->getAccessType() == "ajxp_conf") continue;
            print 
'<tree 
                text="'
.SystemTextEncoding::toUTF8($repoObject->getDisplay()).'" 
                is_file="1" 
                repository_id="'
.$repoIndex.'" 
                accessType="'
.$repoObject->getAccessType().'" 
                icon="folder_red.png" 
                openicon="folder_red.png" 
                filename="/users/'
.SystemTextEncoding::toUTF8($repoObject->getDisplay()).'" 
                parentname="/users" 
                src="content.php?dir=%2Fusers%2F'
.SystemTextEncoding::toUTF8($repoObject->getDisplay()).'" 
                ajxp_mime="repository'
.($repoObject->isWriteable()?"_editable":"").'"
                />'
;
        }
        
    }
    
    function 
listLogFiles($dir){    
        
$logger AJXP_Logger::getInstance();
        
$parts split("/"$dir);
        if(
count($parts)>4){
            print 
'<columns switchDisplayMode="list" switchGridMode="grid">
                <column messageString="Date" attributeName="date" sortType="Date" width="10%"/>
                <column messageString="I.P." attributeName="ip" sortType="String"/>
                <column messageString="Level" attributeName="level" sortType="String"/>
                <column messageString="User" attributeName="user" sortType="String"/>
                <column messageString="Action" attributeName="action" sortType="String"/>
                <column messageString="Params" attributeName="params" sortType="String"/>
            </columns>'
;                
            
$date $parts[count($parts)-1];
            
$logger->xmlLogs($date"tree");
        }else{
            print 
'<columns switchGridMode="filelist"><column messageString="File Date" attributeName="ajxp_label" sortType="String"/></columns>';                
            
$logger->xmlListLogFiles("tree", (count($parts)>2?$parts[2]:null), (count($parts)>3?$parts[3]:null));
        }
    }
    
    function 
printDiagnostic(){
        
$outputArray = array();
        
$testedParams = array();
        
$passed Utils::runTests($outputArray$testedParams);
        
Utils::testResultsToFile($outputArray$testedParams);        
        print 
'<columns switchGridMode="filelist"><column messageString="Test Name" attributeName="ajxp_label" sortType="String"/><column messageString="Test Data" attributeName="data" sortType="String"/></columns>';        
        if(
is_file(TESTS_RESULT_FILE)){
            include_once(
TESTS_RESULT_FILE);            
            foreach (
$diagResults as $id => $value){
                print 
"<tree icon=\"susehelpcenter.png\" is_file=\"1\" filename=\"$id\" text=\"$id\" data=\"$value\" ajxp_mime=\"testResult\"/>";
            }
        }        
    }
    
    function 
parseParameters(&$repDef, &$options$userId null){
        
        foreach (
$repDef as $key => $value)
        {
            
$value SystemTextEncoding::magicDequote($value);
            if(
strpos($key"DRIVER_OPTION_")!== false && strpos($key"DRIVER_OPTION_")==&& strpos($key"ajxptype") === false){
                if(isSet(
$repDef[$key."_ajxptype"])){
                    
$type $repDef[$key."_ajxptype"];
                    if(
$type == "boolean"){
                        
$value = ($value == "true"?true:false);
                    }else if(
$type == "integer"){
                        
$value intval($value);
                    }else if(
$type == "password" && $userId!=null){
                        if (
function_exists('mcrypt_encrypt'))
                        {
                            
// The initialisation vector is only required to avoid a warning, as ECB ignore IV
                            
$iv mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256MCRYPT_MODE_ECB), MCRYPT_RAND);
                            
// We encode as base64 so if we need to store the result in a database, it can be stored in text column
                            
$value base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256,  md5($userId."\1CDAFx¨op#"), $valueMCRYPT_MODE_ECB$iv));
                        }                        
                    }
                    unset(
$repDef[$key."_ajxptype"]);
                }
                
$options[substr($keystrlen("DRIVER_OPTION_"))] = $value;
                unset(
$repDef[$key]);
            }else{
                if(
$key == "DISPLAY"){
                    
$value SystemTextEncoding::fromPostedFileName($value);
                }
                
$repDef[$key] = $value;        
            }
        }        
    }
        
}

?>

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