File size: 5.81Kb
<?php
include '../../engine/includes/start.php';
if (!$creator)
Core::stop();
$set['title'] = 'AntiShell | Сканер файлов';
require incDir.'head.php';
class file_search
{
public
$key,
$arr,
$m = 0,
$method,
$kolvo = 0;
public function file_search($key, $method)
{
$key = trim(str_replace(' ',' ',str_replace("\r\n",' ',$key)));
$this->method=$method;
if ($method == 1)
$key=strtolower($key);
$this->key = explode(' ',$key);
return;
}
public function go_skan($dir)
{
$this->open_dir($dir);
//krsort($this->arr);
return $this->arr;
}
public function open_dir($dir)
{
if ($is = opendir($dir))
{
while (false !== ($file = readdir($is)))
{
if ($file!='.' && $file!='..' )
{
if (is_file($dir.'/'.$file))
{
$size = filesize($dir . '/' . $file);
if ($size>=1)
{
$this->kolvo++;
$fopen = fopen($dir.'/'.$file,'r');
$list = fread($fopen,$size);
fclose($fopen);
$wiev = '';
$m = 0;
$this->m++;
if ($this->method==1)
$list = strtolower($list);
foreach ($this->key as $key)
{
if (strstr($list,trim($key)))
{
$m++;
$wiev.='=|+|+|='.$key;
}
}
if (!empty($wiev))
$this->arr[$m.'.'.$this->m] = $dir.'/'.$file.$wiev;
}
}
else
$this->open_dir($dir.'/'.$file);
}
}
}
return;
}
}
if (isset($_POST['search']) && isset($_POST['dir']))
{
if (isset($_POST['method']))
$method = $_POST['method'];
else
$method = 2;
$class = new file_search($_POST['search'], $method);
$wieF = $class->go_skan($_POST['dir']);
$kolvo = $class->kolvo;
unset($class);
if (is_array($wieF))
{
echo '<div class="post">Просканированно: '.$kolvo.' файл.<br />По ключевым словам найдено: '.count($wieF).' файлов.</div>';
foreach($wieF as $list)
{
$list = explode('=|+|+|=', $list);
$count=count($list);
echo '<div class="post">B Файле: <a href="'.$list[0].'">'.$list[0].'</a> найдено: '.($count - 1).' совпадений согласно запросу!<br />Найдены ключевые слова:<br /><div style="background-color: #aaaaff">';
for($i=1; $i < $count; $i++)
{
echo '<span class="status">'.$list[$i].'</span>, ';
}
echo '<br /></div></div>';
}
}
else
echo 'По вашему запросу в данной директории не найдено не одного файла!<br />';
}
else
?><div class="post">Не рекомендуется проводить поиск сразу по всему серверу если у вас много файлов храниться на хосте, сканируйте каждую папку по очереди.
В противном случае скрипт либо не выполнится до конца либо повесит сервер. Старайтесь не применять поиск с "Без учета регистра" это увеличивает нагрузку на сервер! <br />
Также ищите такие файлы как access.log, error_log, thumbs.db и тд и тп</div>
<form method="post">Директория (без слэша в конце):<br />
<input type="text" name="dir" value="../.." /><br />
Ключевые слова (через пробел):<br />
<textarea rows="4" cols="15" name="search">rmdir unlink chmod eval mkdir <iframe></textarea><br />
<input type="checkbox" name="method" value="1" /> Без учета регистра<br /><br />
<input type="submit" value="Искать" /></form>
<div class="post">Информация по функциям:<br />
<span class="status">rmdir</span>(); - Удаляет директорию (если она пуста)<br />
<span class="status">unlink</span>(); - Удаляет файл<br />
<span class="status">chmod</span>(); - Выставляет/изменяет права доступа<br />
<span class="status">eval</span>(); - Выполняет php код<br />
<span class="status">mkdir</span>(); - Создает директорию</div>
<a href='/admin/'><div class="menu_razd">Админка</div></a>
<?php
include incDir.'foot.php';