
Application NodeJS délibérément vulnérable

L'Application NodeJS Dangereusement Vulnérable (DVNA) est une application NodeJS simple pour démontrer les 10 principales vulnérabilités OWASP et fournir un guide sur la correction et l'évitement de ces vulnérabilités. La branche fixes contiendra les correctifs pour les vulnérabilités. Les correctifs pour les vulnérabilités OWASP Top 10 2017 se trouvent dans la branche fixes-2017.
L'application est propulsée par des bibliothèques couramment utilisées telles que express, passport, sequelize, etc.
L'application est accompagnée d'un guide complet et convivial pour les développeurs qui peut être utilisé pour apprendre, éviter et corriger les vulnérabilités. Le guide est disponible dans docs et couvre les points suivants :
L'article de blog pour cette version se trouve à https://blog.appsecco.com/damn-vulnerable-nodejs-application-dvna-by-appsecco-7d782d36dc1e
Vous pouvez configurer un serveur gitbook local pour accéder à la documentation en utilisant les commandes suivantes. La documentation sera ensuite accessible sur http://localhost:4000.
cd docs/
docker run --rm -v `pwd`:/gitbook -p 4000:4000 --name gitbook amontaigu/gitbook gitbook serve
Essayez DVNA en une seule commande avec Docker. Cette configuration utilise une base de données SQLite au lieu de MySQL.
docker run --name dvna -p 9090:9090 -d appsecco/dvna:sqlite
Accédez à l'application à l'adresse http://127.0.0.1:9090/
DVNA peut être déployé de trois manières :
Des instructions détaillées sur la configuration et les prérequis sont données dans le Guide Gitbook.
Clonez ce dépôt
git clone https://github.com/appsecco/dvna; cd dvna
Créez un fichier vars.env avec la configuration de base de données souhaitée
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
Démarrez l'application et la base de données avec docker-compose
docker-compose up
Accédez à l'application à l'adresse http://127.0.0.1:9090/
L'application se rechargera automatiquement lors des modifications de code, alors n'hésitez pas à patcher et à expérimenter avec l'application.
Créez un fichier nommé vars.env avec la configuration suivante
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_HOST=mysql-db
MYSQL_PORT=3306
Démarrez un conteneur MySQL
docker run --rm --name dvna-mysql --env-file vars.env -d mysql:5.7
Démarrez l'application en utilisant l'image officielle
docker run --rm --name dvna-app --env-file vars.env --link dvna-mysql:mysql-db -p 9090:9090 appsecco/dvna
Accédez à l'application à l'adresse http://127.0.0.1:9090/ et commencez à tester !
Clonez le dépôt
git clone https://github.com/appsecco/dvna; cd dvna
Configurez les variables d'environnement avec les informations de votre base de données
export MYSQL_USER=dvna
export MYSQL_DATABASE=dvna
export MYSQL_PASSWORD=passw0rd
export MYSQL_HOST=127.0.0.1
export MYSQL_PORT=3306
Installez les dépendances
npm install
Démarrez l'application
npm start
Accédez à l'application à l'adresse http://localhost:9090
En cas de bugs dans l'application, veuillez créer un problème sur github. Les demandes de tirage (pull requests) sont les bienvenues !
Abhisek Datta - abhisek pour l'architecture de l'application et le code front-end
MIT