
Un benchmark DAST d'applications volontairement vulnérables avec des clés de réponse de référence pour évaluer les scanners.
Un benchmark DAST d'applications intentionnellement vulnérables avec des clés de réponses de référence pour évaluer les scanners.
⚠️ Ce dépôt contient des applications DÉLIBÉRÉMENT NON SÉCURISÉES. Elles existent uniquement pour évaluer les outils de sécurité - scanners DAST, moteurs SAST et agents de sécurité LLM. Chaque application se lie à
127.0.0.1, affiche une bannière VISIBLE et ne contient aucune donnée réelle. Ne déployez jamais aucun de ces éléments sur un réseau public.
Une suite de 19 applications intentionnellement vulnérables, une par stack, chacune avec une vérité terrain documentée et vérifiable automatiquement. L'objectif est de mesurer dans quelle mesure un scanner ou un agent (a) trouve les bugs implantés, (b) ignore le code sûr quasi-identique situé juste à côté, et (c) n'hallucine pas de résultats sur le jumeau corrigé.
19 applications · 559 vulnérabilités implantées · 155 quasi-ratés · 556 PoC exécutables ·
634 endpoints catalogués. Chaque application démarre sur 127.0.0.1:13311, fournit une
paire jumelle vuln/+safe/ et une build --solo en image unique. dynast-bench list
affiche ce tableau en direct ; dynast-bench surface <app> affiche son catalogue d'endpoints.
| App | Stack | Datastore | Vulns | Near-miss | 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 | Plage réseau multi-hôtes simulée | flotte mixte | 32 | 5 | plan |
| nextjs | Node / Next.js 15 (implémentation de référence) | Postgres | 40 | 19 | plan |
| php | PHP / LAMP procédural | 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 + chargement de spec | Postgres | 19 | 5 | plan |
| websocket | Node 22 / ws + Socket.IO temps réel | Postgres | 28 | 6 | plan |
| weirdproxy | nginx + Apache + Traefik sur une seule origine | aucun | 16 | 4 | plan |
| wordpress | PHP / WordPress + plugin personnalisé | MySQL | 28 | 6 | plan |
Les sidecars supplémentaires par stack (Mailpit, MinIO, Redis, Jenkins, Prometheus, Ollama, …) sont listés dans Les applications ci-dessous.
Les documents de conception par stack se trouvent dans benchmark-plans/ -
commencez par là pour le catalogue complet des vulnérabilités de chaque application. Ce README est le
guide opérationnel : comment le dépôt est organisé et comment exécuter et évaluer une application.
Chaque bug implanté porte un CWE et une catégorie OWASP. Agrégés par classe - chaque bug compté une fois, sous son CWE principal - les bugs implantés se répartissent approximativement comme suit (agrégation régénérée pour la dernière fois à 480 bugs ; les décomptes par application ci-dessus sont à jour) :