Просмотр файла includes/service/forum10/rootkit.php

Размер файла: 5.78Kb
  1. <?php
  2. $command=substr($addmsg,1);
  3. $sysmsg='<b>Команда не опознана ['.$command.']</b><br/>';//Команда не опознана...
  4. for ($k=1;$k<10;$k++) $command=str_replace(' ',' ',$command);
  5. $command=explode(" ",$command,2);
  6.  
  7. $q=@mysql(DBName,"SELECT `status` FROM `$tableu` WHERE `domain` = '$domain' AND `site` = '$site' AND `login` = '".addslashes($command[1])."'");
  8. $s=@round(mysql_num_rows($q));
  9. $f=@mysql_fetch_array($q);
  10. $status_=$f['status'];
  11.  
  12. switch (strtolower($command[0]))
  13. {
  14. case 'noop':
  15. $sysmsg='<b>Пустая команда.</b><br/>';
  16. break;
  17. case 'ban':
  18. //Недостаточно прав...
  19. if ($status<1) {$sysmsg='<b>Недостаточно прав... ['.$command.']</b><br/>';break;}
  20. //Пользователь не найден
  21. if ($s<1) {$sysmsg='<b>Пользователь '.$command[1].' не найден...</b><br/>';break;}
  22. //Конфликт статусов
  23. if ($status<=$status_) {$sysmsg='<b>Конфликт статусов...</b><br/>';break;}
  24.  
  25. @mysql(DBName,"UPDATE `$tableu` SET `status` = '-1' WHERE `domain` = '$domain' AND `site` = '$site' AND `login` = '".$command[1]."' LIMIT 1");
  26. $sysmsg='<b>Для '.$command[1].' установлен бан (написанеи в форум запрещено).</b><br/>';
  27. break;
  28. case 'user':
  29. //Недостаточно прав...
  30. if ($status<1) {$sysmsg='<b>Недостаточно прав... ['.$command.']</b><br/>';break;}
  31. //Пользователь не найден
  32. if ($s<1) {$sysmsg='<b>Пользователь '.$command[1].' не найден...</b><br/>';break;}
  33. //Конфликт статусов
  34. if ($status<=$status_) {$sysmsg='<b>Конфликт статусов...</b><br/>';break;}
  35.  
  36. @mysql(DBName,"UPDATE `$tableu` SET `status` = '0' WHERE `domain` = '$domain' AND `site` = '$site' AND `login` = '".$command[1]."' LIMIT 1");
  37. $sysmsg='<b>Для '.$command[1].' установлен статус обычного пользователя (написанеи в форум разрешено).</b><br/>';
  38. break;
  39. case 'moder':
  40. //Недостаточно прав...
  41. if ($status<2) {$sysmsg='<b>Недостаточно прав... ['.$command.']</b><br/>';break;}
  42. //Пользователь не найден
  43. if ($s<1) {$sysmsg='<b>Пользователь '.$command[1].' не найден...</b><br/>';break;}
  44. //Конфликт статусов
  45. if ($status<=$status_) {$sysmsg='<b>Конфликт статусов...</b><br/>';break;}
  46.  
  47. @mysql(DBName,"UPDATE `$tableu` SET `status` = '1' WHERE `domain` = '$domain' AND `site` = '$site' AND `login` = '".$command[1]."' LIMIT 1");
  48. $sysmsg='<b>Для '.$command[1].' установлен статус "Модератор".</b><br/>';
  49. break;
  50. /* case 'admin':
  51. //Недостаточно прав...
  52. if ($status<2) {$sysmsg='<b>Недостаточно прав... ['.$command.']</b><br/>';break;}
  53. //Пользователь не найден
  54. if ($s<1) {$sysmsg='<b>Пользователь '.$command[1].' не найден...</b><br/>';break;}
  55.  
  56. @mysql(DBName,"UPDATE `$tableu` SET `status` = '2' WHERE `domain` = '$domain' AND `site` = '$site' AND `login` = '".$command[1]."' LIMIT 1");
  57. $sysmsg='<b>Для '.$command[1].' установлен статус "Администратор".</b><br/>';
  58. break;
  59. */
  60. case 'lock':
  61. # Заголовок темы
  62. $q=mysql(DBName,"SELECT `l3`, `login` FROM `$table` WHERE `domain` = '$domain' AND `site` = '$site' AND `l1` = $razdel AND `l2` = $topic AND `l3` = 0");
  63. $s=@mysql_num_rows($q)+0;
  64. $f=@mysql_fetch_array($q);
  65. $flogin=$f['login'];
  66. if (($status<1)&&($flogin!=$login)) {$sysmsg='<b>Нельзя закрыть чужую тему!</b><br/>';include($rootpath_forum."messages.php");}
  67.  
  68. # Все сообщения темы
  69. $q=mysql(DBName,"SELECT `l3` FROM `$table` WHERE `domain` = '$domain' AND `site` = '$site' AND `login` != $login AND `l1` = $razdel AND `l2` = $topic");
  70. $s=@mysql_num_rows($q)+0;
  71. $f=@mysql_fetch_array($q);
  72. if (($status<1)&&($s==0)) {$sysmsg='<b>Темы содержащие только ваши сообщения можно только удалять.</b><br/>';include($rootpath_forum."messages.php");}
  73.  
  74. # Все сообщения темы
  75. $q=mysql(DBName,"SELECT `l3` FROM `$table` WHERE `domain` = '$domain' AND `site` = '$site' AND `l1` = $razdel AND `l2` = $topic ORDER BY `l3` DESC LIMIT 0, 1");
  76. $f=@mysql_fetch_array($q);
  77. $message=$f['l3']+1;
  78.  
  79. @mysql(DBName,"UPDATE `$table` SET `time` = '".time()."' WHERE `domain` = '$domain' AND `site` = '$site' AND `l1` = '$razdel' AND `l2` = '$topic' AND `l3` = '0' LIMIT 1");
  80. @mysql(DBName,"UPDATE `$table` SET `status` = '1' WHERE `domain` = '$domain' AND `site` = '$site' AND `l1` = '$razdel' AND `l2` = '$topic' AND `l3` = '0' LIMIT 1");
  81. @mysql(DBName,"INSERT INTO `$table` ( `domain`, `site`, `l1` , `l2` , `l3` , `status` , `login` , `time` , `text` ) VALUES ( '$domain', '$site', '$razdel', '$topic', '$message', '0', '$login', '".time()."', '<b>Тема закрыта</b>: ".$command[1]." ".$command[2]." ".$command[3]."')");
  82.  
  83. $sysmsg='<b>Тема закрыта.</b><br/>';
  84. include($rootpath_forum."messages.php");
  85. break;
  86. case 'del':
  87. $q=mysql(DBName,"SELECT `l3`, `login` FROM `$table` WHERE `domain` = '$domain' AND `site` = '$site' AND `l1` = $razdel AND `l2` = $topic");
  88. $s=mysql_num_rows($q)+0;
  89. if ($s<1)
  90. {$sysmsg='<b>Тема не существует (уже удалена).</b><br/>';}
  91. else
  92. {
  93. $q=mysql(DBName,"SELECT `l3`, `login` FROM `$table` WHERE `domain` = '$domain' AND `site` = '$site' AND `l1` = $razdel AND `l2` = $topic AND `l3` = 0");
  94. $f=mysql_fetch_array($q);
  95. $flogin=$f['login'];
  96. if (($status<2)&&($flogin!=$login)) {$sysmsg='<b>Нельзя удалить чужую тему.</b><br/>';include($rootpath_forum."messages.php");}
  97. if (($status<2)&&($flogin==$login)&&(($s>2))) {$sysmsg='<b>Для удаления в теме должно быть не более одного сообщения.</b><br/>';include($rootpath_forum."messages.php");}
  98. $f=mysql_fetch_array($q);
  99. @mysql(DBName,"DELETE FROM `$table` WHERE `domain` = '$domain' AND `site` = '$site' AND `l1` = '$razdel' AND `l2` = '$topic'");
  100. $sysmsg='<b>Тема удалена.</b><br/>';
  101. }
  102. $message=0;
  103. $topic=0;
  104. include($rootpath_forum."topics.php");
  105. break;
  106. }
  107. ?>