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
Un analizador de código necesita algo contra lo que probarse. 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 la 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. Se entra con los usuarios de prueba que aparecen en la portada y se empieza 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.