Saltar al contenido
Lectura8 minPreview

Cómo funciona una plantilla YAML

Toda la inteligencia de Nuclei vive en las plantillas. Entender su estructura le permite leer qué hace una antes de lanzarla, confiar en los hallazgos y, más adelante, escribir las suyas. Una plantilla es un archivo YAML con tres partes: un id, un bloque de información y la comprobación.

Anatomía de una plantilla

Vea una plantilla sencilla que detecta un panel de administración accesible sin credenciales. No ataca nada: pide una ruta y revisa la respuesta.

id: panel-admin-expuesto
info:
  name: Panel de administracion accesible
  author: secwing
  severity: medium
  description: Detecta un panel de administracion que responde sin autenticacion.
  tags: exposure,panel
http:
  - method: GET
    path:
      - "{{BaseURL}}/admin/login"
    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "Panel de administracion"
      - type: status
        status:
          - 200

El id es único e identifica el hallazgo en la salida. El bloque info describe la plantilla: name legible, author, severity, una description y los tags que la agrupan por familia. El bloque http define la petición: el método, la ruta (donde {{BaseURL}} se reemplaza por el objetivo) y los matchers, las condiciones que, si se cumplen, confirman el hallazgo. Aquí deben cumplirse ambas (matchers-condition: and): que el cuerpo contenga un texto y que el código sea 200.

Matchers y extractors

Los matchers son el corazón de la detección. Los más comunes comparan el código de estado (status), buscan palabras en la respuesta (word), aplican una expresión regular (regex) o revisan el tamaño. Un extractor, además, saca un dato concreto de la respuesta (una versión, un token) y lo muestra junto al hallazgo, útil para el triaje.

Como la plantilla solo describe una petición y una comparación, es fácil de auditar: usted puede leerla y saber exactamente qué va a hacer contra su servidor.

Severidades

El campo severity clasifica la gravedad del hallazgo. Son cinco niveles y conviene conocerlos porque luego sirven para filtrar y priorizar.

SeveridadQué suele significar
infoDato informativo: tecnología detectada, cabecera ausente
lowProblema menor, poco aprovechable por sí solo
mediumFalla o exposición que merece atención
highRiesgo serio, a corregir pronto
criticalCrítico: suele permitir comprometer el sistema

Las plantillas de la comunidad

El repositorio oficial nuclei-templates reúne miles de plantillas mantenidas por ProjectDiscovery y por la comunidad, organizadas en carpetas por tipo: cves para vulnerabilidades con CVE asignado, exposures para datos o paneles expuestos, misconfiguration, technologies y más. Cada CVE nuevo relevante suele tener su plantilla a los pocos días, y por eso mantener el repositorio al día es parte del trabajo.