January 19, 2025

СКАНЕР УЯЗВИМОСТЕЙ | Nuclei

Nuclei — это мощный инструмент для автоматизации поиска уязвимостей и выполнения сканирования безопасности веб-приложений. Он поддерживает использование как встроенных шаблонов (templates), так и пользовательских (кастомных).

Сегодня я вам буду рассказывать как пользоваться кастомными шаблонами

Nuclei есть на Windows, но в этой статье я буду использовать Linux

Установка:

wget -q https://github.com/projectdiscovery/nuclei/releases/download/v3.3.8/nuclei_3.3.8_linux_amd64.zip

Распаковываете архив

Чтобы проверить версию nuclei вводим

nuclei -version

Пример использования nuclei

nuclei -u https://example.com -t /path/to/templates

Где:

-u указывает целевой URL

-t указывает путь к каталогу с темплейтами

Создание кастомного темплейта:

Темплейт представляет собой файл .yaml, который описывает, какие запросы нужно отправить к целевому URL, а также как интерпретировать ответы.

Пример простого темплейта для проверки наличия SQL-инъекции:

id: sql-injection-detection

info:
  name: SQL Injection Detection
  author: your_name_here
  severity: high

requests:
  - method: GET
    path:
      - "{{BaseURL}}/vulnerable.php?id=1"
      - "{{BaseURL}}/vulnerable.php?id=2'"
    matchers:
      - type: status  
        status:
          - 200    

Где:

Id - Уникальный идентификатор шаблона

Info - Описание шаблона

ВАЖНО! Для каждого шаблона обязательны поля name, author, severity

Requests - Запрос для взаимодействия с веб-приложением

Вместо ссылки я указал {{BaseURL}} — это динамические переменные, которые могут быть помещены в путь, чтобы изменить его поведение во время выполнения. Все динамические переменные можно найти на официальном сайте

Matchers - Проверки для определения соответствия ответов на запросы

Например переменная status нужна для проверки ответа по статусу ответа

Сохранение темплейта:

Сохраните созданный темплейт в файл с расширением .yaml.

Например, можно назвать его sql-injection.yaml.

Когда вы запускаете Nuclei, укажите путь до папки с вашими кастомными темплейтами с помощью флага -t

Например:

nuclei -u https://example.com -t /path/to/custom/templates/