Автоматический поиск уязвимостей в скриптах и поиск шеллов на сервере

Задача: найти шелл или другой уязвимый скрипт на сервере.
В ручную это займёт большое количество времени, поэтому прибегнем к помощи php. Для начала нужно рекурсивно собрать ссылки на все существующие файлы, а далее мы проверим каждый скрипт на наличее вредоносного кода и при необходимости уберём его с нашего сервера.

 




<?php
set_time_limit(0);
ini_set(“set_time_limit”,0);
ini_set(“memory_limit”, “128M”);
function _readdir($d,&$files)
{
global $opendir;
$dir = opendir ($d);
while ( $file = readdir ($dir))
{
if (( $file != “.”) && ($file != “..”))
{
$opendir=$d.”/”.$file;
if(filetype($opendir)==”dir”)
{
_readdir($opendir,&$files);
}
else
{
$files[] = $opendir;
}
}
}
closedir ($dir);
}
_readdir(“.”,&$files);
$exp = array(
‘file_put_contentss*(‘,
‘fwrites*(‘,
‘fputs*(‘,
‘evals*(‘,
‘systems*(‘,
‘<frame[^>] ‘,
‘<iframe[^>] ‘
);
$regexp = ‘/.{15}b(‘.implode($exp,”|”).’)b.{15}/Uis’;
foreach ($files as $index)
{
$content = file_get_contents($index);
if(preg_match_all($regexp,$content,$match))
{
//print_r($match);
echo “<b>”.$index.”</b>”;
for($j=0;$j<count($match[0]);$j )
{
$match[0][$j] = htmlspecialchars($match[0][$j]);
$match[1][$j] = htmlspecialchars($match[1][$j]);
$text = str_replace($match[1][$j], “<font color=”#FF0000″><b>”.$match[1][$j].”</b></font>”, htmlspecialchars($match[0][$j]));
echo “<br>”.$text;
}
echo “<br><br>”;
}
}
?>

RuCoreNET - лучшее для вас!


Поделись статьей с друзьями


74 просмотров


0 0 vote
Рейтинг статьи
Подписаться
Уведомление о
guest
0 Комментарий
Inline Feedbacks
View all comments


Do NOT follow this link or you will be banned from the site!
0
Would love your thoughts, please comment.x
()
x

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: