Искал сканер уязвимостей скриптов и наткнулся на данную тему.
Все сслыки тут оказались битые.Пришлось давольствоваться выложенным
тут исходником.Запускаю раз, второй, пятый, на следующий день, еще десять
раз, но сканер ничего не ищет.Как всегда у всех работает, а у меня нет.Пытаюсь понять смысл данного сканера.Функция scan_file принимает переменную $file, которая используется в функции file.Т.е. функция file пытается открыть пустую переменную $file.Заметил, что автор отключил вывод ошибок(ini_set("display_errors","0")) на экран.Включил я вывод ошибок ini_set("display_errors","1"); и получил кучу ошибок.Далее с помощью оператора цикла for считывается строчка из якобы открытого файла и с помощью оператора if проверяется условие по заданному шаблону уязвимостей.В своем сканере я вместо for использовал foreach.Результат записывается в переменную $res, которая ни где больше не используется, вызывается функция show_error() которая выводит результат на экран.После этого проверяется установлена ли переменная $_POST['dir'], а потом уже читаются все поддиректории в указанной директории.Далее проверяется если это директория то вызывается рекурсивно функция scan_file().Как я заметил это все работает без полного пути к поддерикториям.А функция scan_file() вообще ни где не вызывается.
Как я понял у автора функция должна работать с низу в верх, но не работает, а вызывается она у него видимо то же как то хитро и сама по себе.
В связи с этим набросал свой сканер из 3-х функций:
1-я рекурсивно получает все поддиректории в указанной директории.
2-я получает в массив все файлы с расширением php с полными путями.
3-я открывает и ищет уязвимости по шаблону, выводит найденную строчку в которой возможна уязвимость, а так же ее номер с полным путем до скрипта.