Nuclei: open-source DAST с использованием YAML-шаблонов
17 ноября 2025 г.·186 views

🛠 Nuclei: open-source DAST с использованием YAML-шаблонов

Салют,

Давай сегодня посмотрим с тобой в сторону динамического тестирования DAST, который применяет шаблонизатор YAML. Я хочу поделиться с тобой удобным инструментом, который обычно используется в дополнении к Burp Suite.

Описание

Поддерживает веб-приложения, API, сетевые сервисы и облачные инфраструктуры. Вот тут можешь посмотреть официальный репозиторий и детали по используемым флагам вот тут. Поддерживает параллельную обработку для массового сканирования. Работает в связке с subfinder, httpx, naabu. Не имеет собственных настроек политик. Управление политиками Quality Gate осуществляется на уровне конвейера при его вызове. Лицензия MIT.

У инструмента есть особенности, давай отметим некоторые из них:

- Шаблоны с протоколами code/javascript требуют цифровой подписи и явного указания флага -code для запуска

- Следует использовать режим -disable-unsigned-templates, который разрешает выполнение только подписанных шаблонов и запускайте только в изолированной среде

- Запуск не проверенных шаблонов от третьих лиц опасен из-за риска внедрения вредоносного кода.

- Перед запуском анализируйте id, info, payloads и fuzzing на предмет подозрительных операций

- Используйте флаги ограничения скорости -rl и количества параллельных запросов -c

Применение

nuclei -u https://example.ru # Сканирование одиночной цели

nuclei -l targets.txt # Сканирование списка целей

nuclei -u https://example.ru -t cves/2021/CVE-2021-12345.yaml # Запуск конкретного шаблона

nuclei -u https://example.ru -tags jira -s critical,high # Фильтрация по тегам и серьезности

nuclei -u https://example.ru -as # Автоматическое определение технологий

subfinder -d example.ru | httpx | nuclei # Интеграция с инструментами разведки

nuclei -l openapi.json -im openapi # Сканирование OpenAPI

nuclei -t template_with_code.yaml -code -c 50 -rl 100 # Безопасный запуск шаблонов с кодом

docker run projectdiscovery/nuclei:latest -u https://example.ru # Запуск сканирования c docker

GitLab CI

security_scan:

stage: test

image: golang:latest

before_script:

- go install -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei@latest

script:

- nuclei -u $URL -t /templates -json -o nuclei-report.json

artifacts:

paths:

- nuclei-report.json

Jenkins

stages {

stage('Security Scan') {

steps {

sh '''

# Установка Nuclei

go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Запуск сканирования

$HOME/go/bin/nuclei -u $URL -t $NUCLEI_TEMPLATES -json -o nuclei-report.json

'''

}

}

}

post {

always {

archiveArtifacts artifacts: 'nuclei-report.json', fingerprint: true

}

}

}

Итого: инструмент является полезным для использования, но требует дополнительной подготовки, что позволит тебе натыкаться на прорблемные зоны, где ты увидишь именно свой потенциал для роста. Отметим, что:

- Следует использовать environment с указанием тестируемого URL = 'https://example.com' и используемым NUCLEI_TEMPLATES = '/templates'

- Имеет огромную базу актуальных шаблонов и низкий уровень ложных срабатываний

- Поддерживает множества протоколов (HTTP, TCP, DNS, SSL)

- Имеет риски выполнения вредоносных шаблонов из-за отсутствия опыта

- Имеет последующий потенциальный DoS-эффект на продакшн-системы

- Необходима экспертиза для написания собственных шаблонов

- Тестирует кроме web, также API, облачную инфраструктуру (AWS S3, Azure, etc.), сетевые устройства, включая сторонних поставщиков

#toolchain #dast

#toolchain#dast
Открыть в Telegram