Просмотр файла admin/anti/antishell.php

Размер файла: 5.81Kb
  1. <?php
  2. include '../../engine/includes/start.php';
  3. if (!$creator)
  4. Core::stop();
  5. $set['title'] = 'AntiShell | Сканер файлов';
  6. require incDir.'head.php';
  7.  
  8. class file_search
  9. {
  10. public
  11. $key,
  12. $arr,
  13. $m = 0,
  14. $method,
  15. $kolvo = 0;
  16.  
  17. public function file_search($key, $method)
  18. {
  19. $key = trim(str_replace(' ',' ',str_replace("\r\n",' ',$key)));
  20. $this->method=$method;
  21. if ($method == 1)
  22. $key=strtolower($key);
  23. $this->key = explode(' ',$key);
  24. return;
  25. }
  26.  
  27. public function go_skan($dir)
  28. {
  29. $this->open_dir($dir);
  30. //krsort($this->arr);
  31. return $this->arr;
  32. }
  33.  
  34. public function open_dir($dir)
  35. {
  36. if ($is = opendir($dir))
  37. {
  38. while (false !== ($file = readdir($is)))
  39. {
  40. if ($file!='.' && $file!='..' )
  41. {
  42. if (is_file($dir.'/'.$file))
  43. {
  44. $size = filesize($dir . '/' . $file);
  45. if ($size>=1)
  46. {
  47. $this->kolvo++;
  48. $fopen = fopen($dir.'/'.$file,'r');
  49. $list = fread($fopen,$size);
  50. fclose($fopen);
  51. $wiev = '';
  52. $m = 0;
  53. $this->m++;
  54. if ($this->method==1)
  55. $list = strtolower($list);
  56. foreach ($this->key as $key)
  57. {
  58. if (strstr($list,trim($key)))
  59. {
  60. $m++;
  61. $wiev.='=|+|+|='.$key;
  62. }
  63. }
  64. if (!empty($wiev))
  65. $this->arr[$m.'.'.$this->m] = $dir.'/'.$file.$wiev;
  66. }
  67. }
  68. else
  69. $this->open_dir($dir.'/'.$file);
  70. }
  71. }
  72. }
  73. return;
  74. }
  75. }
  76.  
  77.  
  78. if (isset($_POST['search']) && isset($_POST['dir']))
  79. {
  80. if (isset($_POST['method']))
  81. $method = $_POST['method'];
  82. else
  83. $method = 2;
  84. $class = new file_search($_POST['search'], $method);
  85. $wieF = $class->go_skan($_POST['dir']);
  86. $kolvo = $class->kolvo;
  87. unset($class);
  88.  
  89. if (is_array($wieF))
  90. {
  91. echo '<div class="post">Просканированно: '.$kolvo.' файл.<br />По ключевым словам найдено: '.count($wieF).' файлов.</div>';
  92. foreach($wieF as $list)
  93. {
  94. $list = explode('=|+|+|=', $list);
  95. $count=count($list);
  96. echo '<div class="post">B Файле: <a href="'.$list[0].'">'.$list[0].'</a> найдено: '.($count - 1).' совпадений согласно запросу!<br />Найдены ключевые слова:<br /><div style="background-color: #aaaaff">';
  97. for($i=1; $i < $count; $i++)
  98. {
  99. echo '<span class="status">'.$list[$i].'</span>, ';
  100. }
  101. echo '<br /></div></div>';
  102. }
  103. }
  104. else
  105. echo 'По вашему запросу в данной директории не найдено не одного файла!<br />';
  106. }
  107. else
  108. ?><div class="post">Не рекомендуется проводить поиск сразу по всему серверу если у вас много файлов храниться на хосте, сканируйте каждую папку по очереди.
  109. В противном случае скрипт либо не выполнится до конца либо повесит сервер. Старайтесь не применять поиск с "Без учета регистра" это увеличивает нагрузку на сервер! <br />
  110. Также ищите такие файлы как access.log, error_log, thumbs.db и тд и тп</div>
  111. <form method="post">Директория (без слэша в конце):<br />
  112. <input type="text" name="dir" value="../.." /><br />
  113. Ключевые слова (через пробел):<br />
  114. <textarea rows="4" cols="15" name="search">rmdir unlink chmod eval mkdir &lt;iframe&gt;</textarea><br />
  115. <input type="checkbox" name="method" value="1" /> Без учета регистра<br /><br />
  116. <input type="submit" value="Искать" /></form>
  117. <div class="post">Информация по функциям:<br />
  118. <span class="status">rmdir</span>(); - Удаляет директорию (если она пуста)<br />
  119. <span class="status">unlink</span>(); - Удаляет файл<br />
  120. <span class="status">chmod</span>(); - Выставляет/изменяет права доступа<br />
  121. <span class="status">eval</span>(); - Выполняет php код<br />
  122. <span class="status">mkdir</span>(); - Создает директорию</div>
  123. <a href='/admin/'><div class="menu_razd">Админка</div></a>
  124. <?php
  125. include incDir.'foot.php';