Vulnerable Node
Vulnerable Node es una tienda web pequeña escrita en NodeJS con vulnerabilidades de verdad en el código, sin simular.
Por qué existe
Cuando construyes un analizador de código, necesitas algo contra lo que probarlo. Y las aplicaciones vulnerables que había, como OWASP NodeGoat, están bien para aprender pero no para medir una herramienta: sus fallos están simulados, y un analizador serio no los encuentra porque no están ahí.
Por eso escribí Vulnerable Node: una aplicación con los fallos metidos en el código fuente, en sitios identificables, para poder responder a una pregunta concreta. ¿Cuántos de estos encuentra tu herramienta?
Qué lleva dentro
Los fallos más comunes del OWASP Top 10: inyección, autenticación y sesiones rotas, XSS, referencias directas inseguras a objetos, configuración insegura, exposición de datos sensibles, CSRF y redirecciones sin validar. Todo dentro de una tienda con login, catálogo y compras, para que el código se parezca al de una aplicación real.
Cómo se usa
Un docker compose up levanta la aplicación con su base de datos. Entras con los usuarios de prueba que aparecen en la portada y empiezas a romper.
Lo usa la gente para medir analizadores de código, para practicar pentesting y para enseñar cómo no se programa en NodeJS. Este último es el uso que más me cuentan.
480 estrellas en GitHub.