
Aplicação NodeJS Vulnerável Infernal

A Aplicação NodeJS Vulnerável (DVNA) é uma aplicação NodeJS simples para demonstrar Vulnerabilidades do OWASP Top 10 e orientar sobre como corrigir e evitar essas vulnerabilidades. O branch fixes conterá correções para as vulnerabilidades. Correções para as vulnerabilidades OWASssP Top 10 2017 estão no branch fixes-2017.
A aplicação é alimentada por bibliotecas comumente usadas como express, passport, sequelize, etc.
A aplicação vem com um guia abrangente e amigável para desenvolvedores que pode ser usado para aprender, evitar e corrigir as vulnerabilidades. O guia está disponível em docs e cobre o seguinte:
O post do blog para este lançamento está em https://blog.appsecco.com/damn-vulnerable-nodejs-application-dvna-by-appsecco-7d782d36dc1e
Você pode configurar um servidor gitbook local para acessar a documentação usando os seguintes comandos. A documentação estará então acessível em http://localhost:4000.
cd docs/
docker run --rm -v `pwd`:/gitbook -p 4000:4000 --name gitbook amontaigu/gitbook gitbook serve
Experimente o DVNA usando um único comando com Docker. Esta configuração usa um banco de dados SQLite em vez de MySQL.
docker run --name dvna -p 9090:9090 -d appsecco/dvna:sqlite
Acesse a aplicação em http://127.0.0.1:9090/
O DVNA pode ser implantado de três maneiras
Instruções detalhadas sobre configuração e requisitos são fornecidas no Guia Gitbook
Clone este repositório
git clone https://github.com/appsecco/dvna; cd dvna
Crie um arquivo vars.env com a configuração desejada do banco de dados
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
Inicie a aplicação e o banco de dados usando docker-compose
docker-compose up
Acesse a aplicação em http://127.0.0.1:9090/
A aplicação será recarregada automaticamente em alterações de código, então sinta-se à vontade para corrigir e experimentar a aplicação.
Crie um arquivo chamado vars.env com a seguinte configuração
MYSQL_USER=dvna
MYSQL_DATABASE=dvna
MYSQL_PASSWORD=passw0rd
MYSQL_RANDOM_ROOT_PASSWORD=yes
MYSQL_HOST=mysql-db
MYSQL_PORT=3306
Inicie um contêiner MySQL
docker run --rm --name dvna-mysql --env-file vars.env -d mysql:5.7
Inicie a aplicação usando a imagem oficial
docker run --rm --name dvna-app --env-file vars.env --link dvna-mysql:mysql-db -p 9090:9090 appsecco/dvna
Acesse a aplicação em http://127.0.0.1:9090/ e comece a testar!
Clone o repositório
git clone https://github.com/appsecco/dvna; cd dvna
Configure as variáveis de ambiente com as informações do seu banco de dados
export MYSQL_USER=dvna
export MYSQL_DATABASE=dvna
export MYSQL_PASSWORD=passw0rd
export MYSQL_HOST=127.0.0.1
export MYSQL_PORT=3306
Instale as Dependências
npm install
Inicie a aplicação
npm start
Acesse a aplicação em http://localhost:9090
Em caso de bugs na aplicação, por favor, crie uma issue no github. Pull requests são muito bem-vindos!
Abhisek Datta - abhisek pela arquitetura da aplicação e código front-end
MIT