Nuclei без магии: запуск, шаблоны, практика
Nuclei - это сканер уязвимостей. Если грубо, то это очень удобный DAST-инструмент: ты описываешь в YAML, какой запрос отправить, что в ответе считать признаком проблемы, и по каким условиям матчить результат.
Он подходит и для пайплайна, и для пентеста, и для своих кастомных проверок под конкретную логику приложения.
ProjectDiscovery отдельно подчеркивает, что Nuclei хорошо встраивается в CI/CD, поддерживает разные протоколы и строится вокруг переиспользуемых шаблонов.
━━━━━━━━━━ Базовые команды ━━━━━━━━━━
Самый базовый запуск по одной цели: ➣ nuclei -u https://target.tl
Прогон только нужных шаблонов: ➣ nuclei -u https://target.tld -t http/exposures/
Фильтр по severity: ➣ nuclei -u https://target.tld -severity high,critical
Фильтр по тегам: ➣ nuclei -u https://target.tld -tags cve,xss,exposure
Автоподбор шаблонов под стек: ➣ nuclei -u https://target.tld -as
Запуск своего шаблона: ➣ nuclei -u https://target.tld -t ./custom/my-check.yaml
Проверка шаблона перед запуском: ➣ nuclei -validate -t ./custom/my-check.yaml
Из коробки умеет: • искать CVE, misconfig, exposures и tech-specific проблемы • работать по спискам целей • встраиваться в CI/CD • запускать workflows • комбинировать несколько условий • обновлять community templates автоматически, если это не отключено отдельно
━━━━━━━━━━ Самое интересное ━━━━━━━━━
Как и с Semgrep, сила Nuclei не только в дефолтных шаблонах. Сильная часть начинается тогда, когда ты формализуешь свою проверку сам.
Минимальный скелет шаблона выглядит так • id - идентификатор шаблона • info - метаданные • http - какой запрос отправлять • path или raw - куда и как идти • matchers - по каким признакам считать проверку успешно
Дальше уже наращиваешь логику: • status, word, regex, dsl матчеры • несколько запросов в одном шаблоне • extractors для вытаскивания значений • workflows для цепочек проверок • переменные вроде {{BaseURL}}, {{Hostname}} • raw-запросы, если нужен более точный контроль
━━━━━━━━━━ Что почитать для изучения ━━━━━━━━━━
• статья на Habr: “Nuclei - это просто” https://habr.com/ru/articles/744222/
• официальный гайд по запуску Nuclei https://docs.projectdiscovery.io/opensource/nuclei/running
• официальная документация по структуре шаблонов https://docs.projectdiscovery.io/templates/structure
• официальный раздел по Basic HTTP в шаблонах https://docs.projectdiscovery.io/templates/protocols/http/basic-http
• гайд по созданию шаблонов в nuclei-templates https://github.com/projectdiscovery/nuclei-templates/blob/main/TEMPLATE-CREATION-GUIDE.md
#AppSec #Nuclei #DAST #Pentest #BugBounty #DevSecOps #CyberSecurity