Simple Engine Scanner - инструмент для автоматического сканирования веб-сайтов на наличие уязвимостей по заранее созданной базе. Инструмент состоит из двух частей: скрипт для определения уязвимостей (Perl) и программа на C# для облегченного создания базы уязвимостей, которую этот скрипт использует.
База представляет собой XML-документ. Описывать структуру не буду, сделаю некоторые пояснения по программе, которая позволяет эти XML'ки редактировать.
(База-пример лежит в архиве, ее можно открыть и полистать для того, чтобы понятнее было.)
База содержит информацию о движках для проверки. Можно добавлять новые. Каждый движок имеет секцию "Соответствие", в которой задаются критерии, по которым двиг будет идентифицирован. Эта секция позволяет делать запросы, проверять наличие файлов на сайте, проверять, присутствуют ли заданные строки в полученном запросом контенте и проверять его соответствие заданными регулярными выражениями. Можно задать число необходимых совпадений для идентификации движка.
Секции движков также содержат подраздел "Модули", куда можно добавлять уязвимости модулей движка. Имеется такая же секция соответствия (она тут вполне может быть пустой). Можно добавить системную секцию для создания временных переменных, необходимых для тестирования модуля. Созданные переменные можно использовать для тестирования текущего модуля - они вставляются с помощью фигурных скобок, например, {myvar}. Вставка работает в запросах, в данных POST-запросов, в Cookies, в именах и описаниях уязвимостей. Обязательно парсите переменную перед тем, как ее использовать. Системная секция выполняется перед всеми остальными запросами модуля, и поэтому может быть только одна. В секцию модуля можно также добавлять уязвимости, которые опять-таки детектируются с помощью уже знакомых соответствий.
В программе редактирования БД после изменения параметров не забудьте нажать кнопку "Сохранить", а после завершения редактирования - "Сохранить БД...".
Теперь немного о скрипте для проведения тестирования.
Запускается он следующим образом:
1 |
check.pl http://example.com/forum vuln_xml_file delay log_type log_file |
Первый параметр - сайт для тестирования, vuln_xml_file - имя базы, по которой будет проводиться тестирование, delay - задержка между запросами, log_type - тип логирования (0 - простой вывод в консоль краткой информации, 1 - вывод в консоль и также запись лога в файл log_file, 2 - вывод в консоль краткой информации и в файл полной информации с найденными уязвимостями и информацией о них (этот режим и рекомендуем)).
Опциональные параметры:
-encoding
Примеры использования:
-encoding=auto - автоопределение кодировки сайта;
-encoding=enc (например, -encoding=utf8) - явное задание кодировки сайта.
-redirect404
Если она указана, то 301 и 302 редиректы будут считаться за страницу 404. Полезно, например, при работе с хостингом majordomo. Если она не указана, то скрипт теперь автоматически определит, стоит ли считать 301 и 302 редиректы за страницу 404. Стоит заметить, что такие вещи работают только с HEAD-запросами (и как раз с проверками существования файлов).
Также в скрипте есть строки, позволяющие при необходимости задать http-прокси или socks5 для проведения запросов:
1 2 3 4 |
# Proxy my $proxy = '127.0.0.1:8080'; # 0 - no proxy; 1 - http; 2 - socks5 my $ptype = 0; |
Скачать: simple engine scanner
Оу, запилил бложек обратно? Круто.
Верните линк в ссылках :)
А можно под вордпресс базу?=)
Kaimi, возникла проблема с чилд процессами.. после 64го чилда скрипт выбивается, можете подсказать как фикснуть?
>"Resource temporarily unavailable"
Какие "чилд процессы", о чем речь вообще в контексте этого скрипта?
После 64-го обращения к сокету, скрипт вылетает с ошибкой: "Resource temporarily unavailable", если я не ошибаюсь то это ограничения windows на запуск дочерних процессов..
Был бы премного благодарен, если бы вы помогли справиться с этой проблемой.
Вашу Машу, сорри, вопрос касательно скрипта "Simple mp3 broadcaster"
http://kaimi.io/2010/06/simple-mp3-broadcaster/
Не слышал, что в Windows есть такой лимит. Как-нибудь проверю. А под *nix тоже вылетает?
под никсой не было возможности затестить, но мне кажется что всё будет нормально..