
Damn Vulnerable NodeJS Application

Damn Vulnerable NodeJS Application (DVNA) ist eine einfache NodeJS-Anwendung, um die OWASP Top 10 Schwachstellen zu demonstrieren und eine Anleitung zur Behebung und Vermeidung dieser Schwachstellen zu geben. Der fixes-Branch wird die Korrekturen für die Schwachstellen enthalten. Korrekturen für die OWASssP Top 10 2017 Schwachstellen finden sich im fixes-2017-Branch.
Die Anwendung verwendet häufig genutzte Bibliotheken wie express, passport, sequelize, etc.
Die Anwendung wird mit einem entwicklerfreundlichen umfassenden Leitfaden geliefert, der verwendet werden kann, um die Schwachstellen zu lernen, zu vermeiden und zu beheben. Der Leitfaden ist unter docs verfügbar und deckt Folgendes ab:
Der Blogbeitrag zu dieser Version befindet sich unter https://blog.appsecco.com/damn-vulnerable-nodejs-application-dvna-by-appsecco-7d782d36dc1e
Sie können einen lokalen Gitbook-Server einrichten, um auf die Dokumentation zuzugreifen, indem Sie die folgenden Befehle verwenden. Die Dokumentation ist dann unter http://localhost:4000 verfügbar.
cd docs/
docker run --rm -v `pwd`:/gitbook -p 4000:4000 --name gitbook amontaigu/gitbook gitbook serve
Probieren Sie DVNA mit einem einzigen Befehl mit Docker aus. Dieses Setup verwendet eine SQLite-Datenbank anstelle von MySQL.
docker run --name dvna -p 9090:9090 -d appsecco/dvna:sqlite
Greifen Sie auf die Anwendung unter http://127.0.0.1:9090/ zu
DVNA kann auf drei Arten bereitgestellt werden
Detaillierte Anweisungen zur Einrichtung und den Anforderungen finden Sie im Gitbook-Leitfaden
Klonen Sie dieses Repository
git clone https://github.com/appsecco/dvna; cd dvna
Erstellen Sie eine vars.env mit der gewünschten Datenbankkonfiguration
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
Starten Sie die Anwendung und die Datenbank mit docker-compose
docker-compose up
Greifen Sie auf die Anwendung unter http://127.0.0.1:9090/ zu
Die Anwendung wird bei Code-Änderungen automatisch neu geladen, also können Sie ruhig Patches anwenden und mit der Anwendung herumspielen.
Erstellen Sie eine Datei namens vars.env mit der folgenden Konfiguration
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_HOST=mysql-db
MYSQL_PORT=3306
Starten Sie einen MySQL-Container
docker run --rm --name dvna-mysql --env-file vars.env -d mysql:5.7
Starten Sie die Anwendung mit dem offiziellen Image
docker run --rm --name dvna-app --env-file vars.env --link dvna-mysql:mysql-db -p 9090:9090 appsecco/dvna
Greifen Sie unter http://127.0.0.1:9090/ auf die Anwendung zu und beginnen Sie mit dem Testen!
Klonen Sie das Repository
git clone https://github.com/appsecco/dvna; cd dvna
Konfigurieren Sie die Umgebungsvariablen mit Ihren Datenbankinformationen
export MYSQL_USER=dvna
export MYSQL_DATABASE=dvna
export MYSQL_PASSWORD=passw0rd
export MYSQL_HOST=127.0.0.1
export MYSQL_PORT=3306
Installieren Sie Abhängigkeiten
npm install
Starten Sie die Anwendung
npm start
Greifen Sie auf die Anwendung unter http://localhost:9090 zu
Falls Sie Fehler in der Anwendung finden, erstellen Sie bitte ein Issue auf GitHub. Pull-Requests sind sehr willkommen!
Abhisek Datta - abhisek für die Anwendungsarchitektur und den Frontend-Code
MIT