Размер файла: 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' ;