Скрипт поиска FPD

Скрипт необходимо разместить в корне установленной cms

<?PHP
/************************************************
 *
 * Basic script for FPD vulnerabilities searching
 * author: KronuS
 * version: 1.0.0
 * date: 14.10.2010
 *
 ************************************************/
set_time_limit(0);
error_reporting(0);
 
define ("__HOST", "http://cms/wp"); // Хост и путь до папки с установленной CMS
define ("__OUTPUT_SIZE", 1024); // Размер вывода (если размер вывода меньше, то он воспринимается как потенциально содержащий текст ошибки)
define ("__EXT", "php"); // Какие файлы проверять (php - другие нам как бы не нужны)
define ("__ERROR_TEXT", "<b>Fatal error</b>"); // Какой текст искать (обычно это Fatal error)
 
if (strpos(PHP_OS, "WIN") !== false) {
	define("__SEP", "\\");
}
else {
	define("__SEP", "/");
}
define ("__DIR", dirname(__FILE__)); // Не трогать!!!
 
 
/**
 * Начало поиска
 */
scan(__DIR);
 
/**
 * @param $dir string папка, в которой ищем
 */
function scan($dir) {
	$dp = opendir($dir) or die("Can't open ".$dir."! o_O");
	while ($file = readdir($dp)) {
		if ($file != "." && $file != ".." && $file != basename(__FILE__)) {
			if (is_file($dir.__SEP.$file)) {
				if (pathinfo($dir.__SEP.$file, PATHINFO_EXTENSION) == __EXT) {
					$cn = file_get_contents(__HOST.str_replace(__DIR,"",$dir).__SEP.$file);
					if (strlen($cn) <= __OUTPUT_SIZE && strlen($cn) > 0) {
						if (strpos($cn, __ERROR_TEXT) !== false) {
							echo("<p style='color: red;'>".__HOST.str_replace(__DIR,"",$dir).__SEP.$file."</p>");
							echo("<pre>".$cn."</pr"."e>");
						}
					}
				}
			}
			else {
				if (is_dir($dir.__SEP.$file)) {
					scan($dir.__SEP.$file);
				}
			}
		}
	}
}
 
?>

Все пояснения в комментариях

, ,

Оставить комментарий

Top ↑ | Main page | Back