Saltar al contenido
← Proyectos

Vulnerable Node

JavaScript 480 estrellas 2024

Vulnerable Node es una tienda web pequeña escrita en NodeJS con vulnerabilidades de verdad en el código. No simuladas: reales.

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í.

Vulnerable Node lo escribí para lo contrario. 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 y no a un formulario de ejemplo.

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.

Sirve para medir analizadores de código, para practicar pentesting y para enseñar cómo no se programa en NodeJS. Ese último uso es el que más me han contado.

480 estrellas en GitHub.