Поиск недостатков¶
Поиск недостатков делится на две последовательные фазы:
Модули анализа поверхности атаки¶
| Имя модуля | Методы анализа поверхности атаки | Описание |
|---|---|---|
static-crawler |
Поисковый модуль, который обходит веб-ресурсы и анализирует HTML-разметку, не производя открытие и рендеринг страницы. В рамках модуля есть возможность включения и отключения дирбастинга | |
waf-har-extractor |
Интеграция с SolidWall WAF | Модуль, экспортирующий конечные точки из SolidWall WAF |
dynamic-crawler |
Поисковый модуль, выявляющий конечные точки посредством динамического взаимодействия с интерфейсами веб-приложения с использованием управляемого браузера | |
har-importer |
Импорт HAR-файлов | Модуль, экспортирующий конечные точки из HAR-файлов. Модуль принимает на вход браузерные HAR-файлы и файлы, содержащие массив (типа JSON и NDJSON) описаний HTTP-запросов в расширенном формате HAR |
openapi-hars-generator |
Импорт спецификации OpenAPI | Модуль, экспортирующий конечные точки из OpenAPI‑спецификации |
js-analyzer |
Анализ клиентского JavaScript-кода | Модуль, выявляющий конечные точки сервера при помощи анализа клиентского JavaScript-кода |
graphql-inspector |
Выявление конечных точек GraphQL | Модуль, который отправляет специфичные для GraphQL HTTP-запросы с целью выявления конечных точек GraphQL |
Модули обнаружения недостатков¶
В данном разделе термин «недостаток» понимается в широком смысле и включает в себя в том числе уязвимости и атаки.
| Имя модуля | Обнаруживаемые недостатки | Описание |
|---|---|---|
nuclei-runner-deps |
Недостатки, описанные расширенными сигнатурами Nuclei | Модуль активного сканирования выявленных конечных точек, использующий расширенные шаблоны Nuclei. Для указанных конечных точек модуль позволяет задать условия запуска анализа |
nuclei-runner |
Недостатки, описанные сигнатурами Nuclei | Модуль активного сканирования, который использует сигнатуры в формате YAML и может сканировать различные протоколы |
powby2 |
Недостатки, описанные сигнатурами Powby2 | Модуль пассивного сканирования, который выявляет различные технологии, анализирует ресурсы, находящиеся в базе данных, и сопоставляет их с сигнатурами |
zvlom-serialize |
Контролируемые сериализованные данные | Модуль выполняет поиск сериализованных объектов в ответе сервера. Умеет выявлять сериализованные объекты которые могут быть закодированы как единожды, так и цепочкой из нескольких кодировок или алгоритмов сжатия. Выполняет поиск объектов, сериализованных в приложениях, использующих PHP, Python (Pickle), Ruby, Java, .NET и прочие технологии |
cspp-scanner |
Client-Side Prototype Pollution | Модуль выявляет указанный недостаток при помощи динамической проверки выполнения JavaScript-кода на странице приложения в веб-бразуере |
dynamic-page-analyzer-cspp |
Client-Side Prototype Pollution | Модуль при помощи динамического анализа ищет потоки данных, которые могут привести к Client-Side Prototype Pollution |
dynamic-page-analyzer-domxss |
DOM XSS | Модуль при помощи динамического анализа ищет потоки данных, которые могут привести к DOM XSS |
stored-xss |
Stored XSS | Модуль выявляет указанный недостаток при помощи двухэтапного обхода приложения и динамической проверки выполнения JavaScript-кода на странице приложения в веб-браузере |
bruteforce |
Подбираемые учетные записи | Модуль выявляет в системе учётные записи, имеющие слабые данные для входа, с помощью перебора по словарю. Помимо встроенного, также имеется возможность использовать пользовательский словарь. В настоящий момент поддержка пользовательского словаря реализована только для fuchsiactl |
file-upload-scanner |
Уязвимости загрузки файлов | Модуль выявляет недостатки, связанные с загрузкой файлов на веб-сервер. Обнаруживаются следующие уязвимости: 1. исполнение произвольного PHP-кода; 2. уязвимости, связанные с обработчиком изображений ImageMagick; 3. Reflected XSS (модуль загружает HTML страницу и анализирует содержащийся текст) |
java-deserialize |
Небезопасная десериализация в Java | Модуль выявляет указанный недостаток для веб-приложений на языке Java, используя сериализованные объекты, найденные при помощи модуля zvlom-serialize |
nosql |
NoSQL-инъекции | Модуль выявляет недостатки, возникающие при попадании пользовательских данных в контекст команд баз данных NoSQL из-за недостаточной или некорректной фильтрации. Валидация уязвимости осуществляется двумя способами: 1. HTTP-ответ содержит ошибки NoSQL; 2. Отправляется несколько HTTP-запросов с противоположными по смыслу операторами NoSQL и выявляются различия в полученных ответах |
path-traversal-scanner |
Path Traversal | Модуль выявляет недостаток, заключающийся в доступе к произвольным файлам и директориям на сервере, где запущено веб-приложение. Наличие уязвимости выявляется при попытке поиска содержимого стандартных для разных операционных систем файлов в HTTP-ответах |
reflected-xss-cspp |
Reflected XSS | Модуль выявляет указанный недостаток на основании результата работы модуля cspp-scanner |
reflected-xss |
Reflected XSS | Модуль выявляет указанный недостаток при помощи динамической проверки выполнения JavaScript-кода на странице приложения в веб-браузере |
shell-injection-scanner |
Shell-инъекции | Модуль выявляет указанный тип недостатка при помощи внедрения shell-команд с различными вариациями выхода из контекста данных в контекст команд. Валидация уязвимости происходит при помощи сетевого взаимодействия и поиска результата вывода команды в теле HTTP-ответа |
sql-franziscanner |
SQL-инъекции | Модуль выявляет недостатки, возникающие, когда пользовательские данные попадают в инструкцию SQL без должной фильтрации. Модуль выявляет указанный недостаток следующими способами: 1. слепые boolean-based проверки; 2. слепые проверки на основе времени HTTP-ответа; 3. проверки на основе ошибок; 4. проверки с помощью запросов, использующих UNION; 5. проверки с помощью составных запросов; 6. взаимодействие out-of-band |
sql-injection-scanner |
SQL-инъекции | Модуль выявляет указанный недостаток следующими способами: 1. взаимодействие out-of-band; 2. delay-based проверки; 3. busy wait проверки; 4. проверка добавлением кавычек |
ssti-franziscanner |
SSTI | Модуль выявляет недостатки, возникающие, когда веб-приложение некорректно обрабатывает пользовательский ввод в серверных шаблонах. Недостатки выявляются следующими способами: 1. взаимодействие out-of-band; 2. поиск результатов выполнения команд в телах HTTP-ответов; 3. выявление на основе времени HTTP-ответа |
xxe-franziscanner |
XXE | Модуль выявляет недостатки приложения, которое анализирует входные данные XML. Недостаток возникает, когда входные данные XML, содержащие ссылку на внешнюю сущность, обрабатываются слабо сконфигурированным анализатором XML. Недостатки выявляются следующими способами: 1. взаимодействие out-of-band; 2. поиск в HTTP-ответах содержимого стандартных для различных операционных систем файлов, подключенных как внешняя сущность в отправляемый на сервер XML-документ; 3. использование local DTDs техники |
php-unserialize-fuzzer |
Небезопасная десериализация в PHP | Модуль выявляет указанный недостаток для веб-приложений на языке PHP, используя сериализованные объекты, найденные при помощи модуля zvlom-serialize |