
Maldita Aplicación NodeJS Vulnerable

La Aplicación NodeJS Vulnerable a Propósito (DVNA) es una aplicación NodeJS simple para demostrar las Vulnerabilidades del Top 10 de OWASP y guiar sobre cómo corregir y evitar estas vulnerabilidades. La rama de fixes contendrá las correcciones para las vulnerabilidades. Las correcciones para las vulnerabilidades OWASssP Top 10 2017 se encuentran en la rama fixes-2017.
La aplicación utiliza bibliotecas de uso común como express, passport, sequelize, etc.
La aplicación incluye una guía completa y amigable para desarrolladores que se puede utilizar para aprender, evitar y corregir las vulnerabilidades. La guía está disponible en docs y cubre lo siguiente:
La publicación del blog para esta versión está en https://blog.appsecco.com/damn-vulnerable-nodejs-application-dvna-by-appsecco-7d782d36dc1e
Puede configurar un servidor gitbook local para acceder a la documentación usando los siguientes comandos. La documentación estará disponible en http://localhost:4000.
cd docs/
docker run --rm -v `pwd`:/gitbook -p 4000:4000 --name gitbook amontaigu/gitbook gitbook serve
Pruebe DVNA con un solo comando usando Docker. Esta configuración utiliza una base de datos SQLite en lugar de MySQL.
docker run --name dvna -p 9090:9090 -d appsecco/dvna:sqlite
Acceda a la aplicación en http://127.0.0.1:9090/
DVNA se puede implementar de tres maneras
Las instrucciones detalladas sobre la configuración y los requisitos se encuentran en la guía Gitbook
Clone este repositorio
git clone https://github.com/appsecco/dvna; cd dvna
Cree un archivo vars.env con la configuración de base de datos deseada
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
Inicie la aplicación y la base de datos usando docker-compose
docker-compose up
Acceda a la aplicación en http://127.0.0.1:9090/
La aplicación se recargará automáticamente con los cambios de código, así que siéntase libre de parchear y jugar con la aplicación.
Cree un archivo llamado vars.env con la siguiente configuración
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_HOST=mysql-db
MYSQL_PORT=3306
Inicie un contenedor MySQL
docker run --rm --name dvna-mysql --env-file vars.env -d mysql:5.7
Inicie la aplicación usando la imagen oficial
docker run --rm --name dvna-app --env-file vars.env --link dvna-mysql:mysql-db -p 9090:9090 appsecco/dvna
Acceda a la aplicación en http://127.0.0.1:9090/ ¡y comience a probar!
Clone el repositorio
git clone https://github.com/appsecco/dvna; cd dvna
Configure las variables de entorno con la información de su base de datos
export MYSQL_USER=dvna
export MYSQL_DATABASE=dvna
export MYSQL_PASSWORD=passw0rd
export MYSQL_HOST=127.0.0.1
export MYSQL_PORT=3306
Instale las dependencias
npm install
Inicie la aplicación
npm start
Acceda a la aplicación en http://localhost:9090
En caso de errores en la aplicación, por favor cree un issue en github. ¡Las solicitudes de extracción son bienvenidas!
Abhisek Datta - abhisek por la arquitectura de la aplicación y el código del front-end
MIT