!C99Shell v. 1.0 pre-release build #13!

Software: Apache. PHP/5.5.15 

uname -a: Windows NT SVR-DMZ 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) i586 

SYSTEM 

Safe-mode: OFF (not secure)

C:\Users\DMZ\Desktop\cumbreclima0909\wp-content\plugins\w3-total-cache\lib\W3\Enterprise\   drwxrwxrwx
Free 4.09 GB of 39.52 GB (10.35%)
Detected drives: [ a ] [ c ] [ d ] [ e ] [ f ]
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     SnsClient.php (10.17 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

/**
 * Purge using AmazonSNS object
 */

w3_require_once(W3TC_LIB_W3_DIR '/Enterprise/SnsBase.php');

/**
 * Class W3_Sns
 */
class W3_Enterprise_SnsClient extends W3_Enterprise_SnsBase {

    private 
$messages = array();
    private 
$messages_by_signature = array();
    private 
$send_action_configured false;

    
/**
     * Sends subscription request
     */
    
function subscribe($url$topic_arn) {
        
$this->_log('Sending subscription to ' $topic_arn ' ' $url);
        
        
$response $this->_get_api()->subscribe($topic_arn'http'$url);
        if (!
$response->isOK())
            throw new 
Exception('Subscription failed');
    }
    
    
/**
     * Flushes DB caches
     *
     */
    
function dbcache_flush() {
        
$this->_prepare_message(array('action' => 'dbcache_flush'));
    }
    
    
/**
     * Flushes minify caches
     *
     */
    
function minifycache_flush() {
        
$this->_prepare_message(array('action' => 'minifycache_flush'));
    }

    
/**
     * Flushes object caches
     *
     */
    
function objectcache_flush() {
        
$this->_prepare_message(array('action' => 'objectcache_flush'));
    }

    
/**
     * Flushes fragment caches
     *
     */
    
function fragmentcache_flush() {
        
$this->_prepare_message(array('action' => 'fragmentcache_flush'));
    }

    
/**
     * Flushes fragment cache based on group
     *
     */
    
function fragmentcache_flush_group($group$global false) {
        
$this->_prepare_message(array('action' => 'fragmentcache_flush_group''group' => $group'global' => $global));
    }

    
/**
     * Flushes query string
     *
     */
    
function browsercache_flush() {
        
$this->_prepare_message(array('action' => 'browsercache_flush'));
    }
    
    
/**
     * Purges Files from Varnish (If enabled) and CDN
     *
     */
    
function cdn_purge_files($purgefiles) {
        
$this->_prepare_message(array('action' => 'cdn_purge_files''purgefiles' => $purgefiles));
    }

    
/**
     * Flushes all caches
     * @return boolean
     */
    
function pgcache_flush() {
        return 
$this->_prepare_message(array('action' => 'pgcache_flush'));
    }

    
/**
     * Flushes post cache
     *
     * @param integer $post_id
     * @return boolean
     */
    
function pgcache_flush_post($post_id) {
        return 
$this->_prepare_message(
            array(
'action' => 'pgcache_flush_post''post_id' => $post_id));
    }

    
/**
     * Flushes post cache
     *
     * @param string $url
     * @return boolean
     */
    
function pgcache_flush_url($url) {
        return 
$this->_prepare_message(
            array(
'action' => 'pgcache_flush_url''url' => $url));
    }
    
    
/**
     * Performs garbage collection on the pgcache
     */
    
function pgcache_cleanup() {
        
$this->_prepare_message(array('action' => 'pgcache_cleanup'));
    }

    
/**
     * Purges post from varnish cache
     * @param $post_id
     * @return mixed
     */
    
function varnish_flush_post($post_id) {
        return 
$this->_prepare_message(array('action' => 'varnish_flush_post''post_id' => $post_id));
    }

    
/**
     * Purges url from varnish cache
     * @param string $url
     * @return mixed
     */
    
function varnish_flush_url($url) {
        return 
$this->_prepare_message(array('action' => 'varnish_flush_url''url' => $url));
    }

    
/**
     * Purges varnish cache
     * @return mixed
     * @return boolean
     */
    
function varnish_flush() {
        return 
$this->_prepare_message(array('action' => 'varnish_flush'));
    }

    
/**
     * Purges post from CDN cache
     * @param $post_id
     * @return boolean
     */
    
function cdncache_purge_post($post_id) {
        return 
$this->_prepare_message(array('action' => 'cdncache_purge_post''post_id' => $post_id));
    }

    
/**
     * Purge CDN cache
     */
    
function cdncache_purge() {
        return 
$this->_prepare_message(array('action' => 'cdncache_purge'));
    }

    
/**
     * Purges post from CDN cache
     * @param $url
     * @return boolean
     */
    
function cdncache_purge_url($url) {
        return 
$this->_prepare_message(array('action' => 'cdncache_purge_url''url' => $url));
    }

    
/**
     * Flushes the system APC
     * @return bool
     */
    
function apc_system_flush() {
        
$this->_prepare_message(array('action' => 'apc_system_flush'));
    }

    
/**
     * Reloads/compiles a PHP file.
     * @param string $filename
     * @return mixed
     */
    
function apc_reload_file($filename) {
        return 
$this->_prepare_message(array('action' => 'apc_reload_file''filename' => $filename));
    }

    
/**
     * Reloads/compiles a PHP file.
     * @param string[] $filenames
     * @return mixed
     */
    
function apc_reload_files($filenames) {
        return 
$this->_prepare_message(array('action' => 'apc_reload_files''filenames' => $filenames));
    }


    
/**
     * Deletes files based on regular expression matching.
     * @param string $mask
     * @return mixed
     */
    
function apc_delete_files_based_on_regex($mask) {
        return 
$this->_prepare_message(array('action' => 'apc_delete_files_based_on_regex''regex' => $mask));
    }

    
/**
     * Purges/Flushes post from page caches, varnish and cdncache
     * @param $post_id
     * @return boolean
     */
    
function flush_post($post_id) {
        return 
$this->_prepare_message(array('action' => 'flush_post''post_id' => $post_id));
    }

    
/**
     * Purges/Flushes page caches, varnish and cdncache
     * @return boolean
     */
    
function flush() {
        return 
$this->_prepare_message(array('action' => 'flush'));
    }

    
/**
     * Purges/Flushes all enabled caches
     * @return boolean
     */
    
function flush_all() {
        return 
$this->_prepare_message(array('action' => 'flush_all'));
    }

    
/**
     * Purges/Flushes url from page caches, varnish and cdncache
     * @param string $url
     * @return boolean
     */
    
function flush_url($url) {
        return 
$this->_prepare_message(array('action' => 'flush_url''url' => $url));
    }

    
/**
     * Makes get request to url specific to post, ie permalinks
     * @param $post_id
     * @return mixed
     */
    
function prime_post($post_id) {
        return 
$this->_prepare_message(array('action' => 'prime_post''post_id' => $post_id));
    }

    
/**
     * Setups message list and if it should be combined or separate
     * @param $message
     * @return boolean
     */
    
private function _prepare_message($message) {
        
$message_signature json_encode($message);
        if (isset(
$this->messages_by_signature[$message_signature]))
            return 
true;
        
$this->messages_by_signature[$message_signature] = '*';
        
$this->messages[] = $message;

        
$action $this->_get_action();
        if (!
$action) {
            
$this->send_messages();
            return 
true;
        }
        
        if (!
$this->send_action_configured) {
            
add_action('w3_redirect', array(
                &
$this,
                
'send_messages_w3_redirect'
            
), 1000000);
            
add_filter('wp_redirect', array(
                &
$this,
                
'send_messages_wp_redirect'
            
), 1000001);
            
add_action('shutdown', array(
                &
$this,
                
'send_messages'
            
), 1000000);
    
            
$this->send_action_configured true;
        }
        
        return 
true;
    }

    
/**
     * Sends messages stored in $messages
     *
     * @return boolean
     */
    
public function send_messages() {
        if (
count($this->messages) <= 0)
            return 
true;
        
        
$this->_log($this->_get_action() . ' sending messages');
        
        
$message = array();
        
$message['actions'] = $this->messages;
        
$message['blog_id'] = w3_get_blog_id();
        
$message['host'] = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : null;
        
$message['hostname'] = @gethostname();
        
$v json_encode($message);

        try {
            
$api $this->_get_api();
            if (
defined('WP_CLI') && WP_CLI)
                
$origin 'WP CLI';
            else
                
$origin 'WP';
            
$this->_log($origin ' sending message ' $v);
            
$this->_log('Host: ' $message['host']);
            if (isset(
$_SERVER['REQUEST_URI']))
                
$this->_log('URL: ' $_SERVER['REQUEST_URI']);
            if (
function_exists('current_filter'))
                
$this->_log('Current WP hook: ' current_filter());
            
            
$backtrace debug_backtrace();
            
$backtrace_optimized = array();
            foreach (
$backtrace as $b) {
                
$opt = isset($b['function']) ? $b['function'] . ' ' '';
                
$opt .= isset($b['file']) ? $b['file'] . ' ' '';
                
$opt .= isset($b['line']) ?  '#' $b['line'] . ' ' '';
                
$backtrace_optimized[] = $opt;

            }
            
$this->_log('Backtrace '$backtrace_optimized);
            
            
$r $api->publish($this->_topic_arn$v);
            if (
$r->status != 200) {
                
$this->_log("Error: {$r->body->Error->Message}");
                return 
false;
            }
        } catch (
Exception $e) {
            
$this->_log('Error ' $e->getMessage());
            return 
false;
        }

        
// on success - reset messages array, but not hash (not resent repeatedly the same messages)
        
$this->messages = array();
        
        return 
true;
    }

    
/**
     * Send messages on wp_redirect
     * @param $location
     * @return mixed
     */
    
public function send_messages_wp_redirect($location) {
        
$this->_log($this->_get_action() . ' sending messages wp_redirect');
        
$this->send_messages();
        return 
$location;
    }

    
/**
     * Send messages on w3_redirect
     */
    
public function send_messages_w3_redirect() {
        
$this->_log($this->_get_action() . ' sending messages w3_redirect');
        
$this->send_messages();
    }

    
/**
     * Gets the current running WP action if any. Returns empty string if not found.
     * @return string
     */
    
private function _get_action() {
        
$action '';
        if (
function_exists('current_filter'))
            
$action current_filter();
        return 
$action;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

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

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0312 ]--