
Un benchmark DAST de aplicaciones intencionalmente vulnerables con claves de respuesta de referencia para puntuar escáneres.
Un benchmark DAST de aplicaciones intencionalmente vulnerables con claves de respuestas de referencia para puntuar escáneres.
⚠️ Este repositorio contiene aplicaciones DELIBERADAMENTE INSEGURAS. Existen únicamente para evaluar herramientas de seguridad: escáneres DAST, motores SAST y agentes de seguridad LLM. Cada aplicación se enlaza a
127.0.0.1, muestra un banner LLAMATIVO y no contiene datos reales. Nunca despliegues nada de esto en una red pública.
Una suite de 19 aplicaciones intencionalmente vulnerables, una por stack, cada una con una verdad de referencia documentada y verificable por máquina. El objetivo es medir qué tan bien un escáner o agente (a) encuentra los errores plantados, (b) ignora el código seguro casi vulnerable situado justo al lado de ellos, y (c) no alucina hallazgos en el gemelo parcheado.
19 aplicaciones · 559 vulnerabilidades plantadas · 155 casi-vulnerabilidades · 556 PoC ejecutables ·
634 endpoints catalogados. Cada aplicación arranca en 127.0.0.1:13311, incluye un
par de gemelos vuln/+safe/ y una compilación --solo de imagen única. dynast-bench list
imprime esta tabla en vivo; dynast-bench surface <app> imprime su catálogo de endpoints.
| App | Stack | Almacén de datos | Vulns | Casi-vulnerabilidades | Docs |
|---|---|---|---|---|---|
| aspnet | C# / ASP.NET Core Razor Pages | SQL Server | 28 | 12 | plan |
| fastapi | Python / FastAPI + Jinja2 | Postgres | 26 | 5 | plan |
| gin | Go / Gin | Postgres | 17 | 12 | readme |
| golang | Go / chi | Postgres | 26 | 4 | plan |
| graphql | Node / GraphQL 16 API-only | Postgres | 31 | 6 | plan |
| jsp | Java / JSP + Servlets (Tomcat) | Postgres | 28 | 6 | plan |
| laravel | PHP 8.3 / Laravel 11 + Blade | MySQL | 25 | 7 | plan |
| llmagent | Node / Fastify + AI SDK + MCP | Postgres | 29 | 8 | plan |
| llmchat | Python / FastAPI + LangChain RAG | Postgres+pgvector | 30 | 9 | plan |
| nestjs | Node / NestJS + Handlebars | Postgres | 23 | 6 | plan |
| network | Rango de red multi-host simulado | flota mixta | 32 | 5 | plan |
| nextjs | Node / Next.js 15 (implementación de referencia) | Postgres | 40 | 19 | plan |
| php | PHP / LAMP procedimental | MySQL | 21 | 5 | plan |
| rails | Ruby / Rails 7.2 | Postgres | 26 | 6 | plan |
| springboot | Java / Spring Boot + Thymeleaf | Postgres | 30 | 4 | plan |
| swagger | OpenAPI / Swagger UI + carga de especificaciones | Postgres | 19 | 5 | plan |
| websocket | Node 22 / ws + Socket.IO en tiempo real | Postgres | 28 | 6 | plan |
| weirdproxy | nginx + Apache + Traefik sobre un mismo origen | ninguno | 16 | 4 | plan |
| wordpress | PHP / WordPress + plugin personalizado | MySQL | 28 | 6 | plan |
Los sidecars adicionales por stack (Mailpit, MinIO, Redis, Jenkins, Prometheus, Ollama, …) se enumeran en Las aplicaciones a continuación.
Los documentos de diseño por stack se encuentran en benchmark-plans/:
empieza por ahí para el catálogo completo de vulnerabilidades de cada aplicación. Este README es la
guía operativa: cómo está organizado el repositorio y cómo ejecutar y puntuar una aplicación.
Cada bug plantado lleva un CWE y una categoría OWASP. Agrupados por clase —cada bug contado una vez, bajo su CWE principal—, los bugs plantados se desglosan aproximadamente así (la última regeneración del rollup fue a los 480 bugs; los recuentos por app de arriba están actualizados):