Создание шаблонов Nuclei

Создание шаблонов Nuclei

Nuclei — отличный инструмент для поиска уязвимостей веб-приложений, который использует YAML-шаблоны для проверки наличия различных уязвимостей и конфигураций. Одно из главных преимуществ Nuclei — возможность создания пользовательских шаблонов, что позволяет расширить функционал сканера и адаптировать его под свои задачи. Давайте разберем процесс создания шаблонов.

Еще по теме: Установка и использование NucleiFuzzer

Создание шаблонов Nuclei

Прежде всего, необходимо знать, какие уязвимости мы хотим найти. Возможно, кто-то занимается поиском уязвимостей веб-приложений, и тогда нужные уязвимости будут связаны с веб-фреймворками (Spring, Angular, React, Node), продуктами баз данных (MongoDB, MSSQL, …) или серверными движками (Nginx, Apache).

Имея в руках CVE (например, CVE-2021-44228), нам необходимо понять, как работает эта уязвимость и как ее воспроизвести. Шаблоны Nuclei представляют собой YAML-файлы, поэтому все взаимодействия Nuclei с каким-либо хостом автоматизированы и работают как send-and-match, в которой Nuclei посылает запросы, специально созданные для обнаружения уязвимости, а также поле для сопоставления с шаблоном.

Send-and-match — это методика тестирования на SQL-инъекции путем отправки специальных запросов (send) и анализа ответов сервера на совпадение с ожидаемыми при успешной инъекции (match). Позволяет находить слепые SQL-инъекции без визуализации результатов запроса. Часто используется для автоматизации поиска SQLi в приложениях.

Конечно, хочется быть первыми, кто напишет и сможет использовать нужный шаблон, но на данный момент уже есть шаблон для уязвимости Log4J. Давайте лучше на более простом примере попробуем рассмотреть важные секции YAML-файла, которые будет использовать Nuclei для поиска уязвимости.

Структура шаблонов Nuclei

Шаблон Nuclei состоит из нескольких секций:

  • info — метаданные шаблона.
  • requests — HTTP-запросы для проверки уязвимости.
  • matchers — проверки ответов на соответствие шаблону.
  • extractors — извлечение данных из ответов.

Шаблон может содержать один или несколько запросов с разными методами — GET, POST и другими. Matchers позволяют гибко проверять ответы — текст, заголовки, статус-коды.

Вот базовый пример шаблона Nuclei:

Этот шаблон проверяет наличие конкретного текста Sensitive information на странице /sensitive-directory/ целевого сайта.

Ниже пример простого шаблона для поиска XSS-уязвимостей.

Заключение

Создание собственных шаблонов Nuclei — это эффективный способ настроить процесс поиска уязвимостей под свои нужды. Несмотря на то, что Nuclei предоставляет обширную библиотеку предварительно созданных шаблонов, создание своих собственных шаблонов может помочь найти редкие уязвимости и мисконфигурации.

ПОЛЕЗНЫЕ ССЫЛКИ:

QUASAR

Этичный хакер: компьютерный ниндзя и мастер цифровых тайн.

Добавить комментарий