Skip to content

Latest commit

 

History

History
253 lines (153 loc) · 8.58 KB

README.md

File metadata and controls

253 lines (153 loc) · 8.58 KB

WarGame - Nova8

WarGame_Checkmarx_One

Introdução WarGame

Este repositório introduz o WarGame, no qual é um WebGoat em JavaScript, sendo desenvolvido pela equipe de consultoria da Nova8, com o intuito de dar um treinamento para toda Nova8, afim de aprender como resolver algumas vulnerabilidades, como SQL Injection, DOM XSS, XXE entre várias outras vulnerabilidades.


Sumário


O que é um WebGoat

Com base no site da OWASP:

"WebGoat é um aplicativo deliberadamente inseguro que permite que desenvolvedores interessados como você testem vulnerabilidades comumente encontrado em aplicativos baseados em Java que usam componentes de código aberto comuns e populares."

Clique aqui para entender melhor sobre o que é um WebGoat.


Antes de começar

⚠️ ATENÇÃO ⚠️

Antes de começar a corrigir as vulnerabilidades, você precisa dos seguintes pré-requisitos:

  • Instale o git
  • Instale e configure o banco de dados MySQL
  • Instale e configure o Node.js
  • Instale todas as bibliotecas necessárias do lado do servidor(Back-end)
  • Tenha conhecimento de programação em HTML e CSS
  • Tenha conhecimento de programação em JavaScript
  • Tenha conhecimento de programação em MySQL

Instalações

Instalação Git

Este link vai redirecionar você ao site oficial do Git, para a instalçao do Git, no SO Windows.

Clique aqui para ir até a instação do Git


Instalação MySQL

Este link vai redirecionar você ao site oficial do MySQL, para a instação do MySQL.

Clique aqui para ir até a instação do MySQL

⚠️ ATENÇÃO ⚠️

Caso tenha dúvida de como instalar e configurar o MySQL, acesse:

Como instalar o MySQL


Instalação do Node

Este link vai redirecionar você a um guia de como instalar o Node.js

Clique aqui para ir até o guia de instalação do Node.js

Este link vai redirecionar você ao site oficial do Nodejs, para a instalação do Node.js

Clique aqui para ir até a instalação do Node.js


Clonando o projeto

⚠️ ATENÇÃO ⚠️

Lembre-se de já ter instalado e configurado o Node.

Para clonar o projeto, você precisa fazer um "Fork" do projeto, no qual irá criar um repositório no seu perfil do GitHub, que estará conectado a este repositório aqui.

Depois, você precisa criar uma pasta no seu computador, no local a onde você vai colocar o projeto, e vai abrir o git bash dentro dessa pasta e colocar o comando:

git init

E depois coloque o comando:

git clone https://github.com/Nova-8/WarGame.git

Após isso, você vai acessar a sua Branch pelo git bash utilizando o comando:

git checkout -b Nome_da_sua_branch

Com esses comandos você estará acessando a sua branch no projeto e poderá fazer as modificações que desejar.


Configurando MySQL

⚠️ ATENÇÃO ⚠️

JAMAIS utilize a instalação "MySQL Community (GPL) Downloads »" do MySQL em meio de produção, somente para fins educacionais, como é o caso deste WarGame.

Após instalar o MySQL, você irá abrir o MySQL Workbench, e vai criar uma nova conexão clicando no + do MySQL Connections, depois vai aparecer para você configurar essa nova conexão, você precisara colocar o nome da conexão, o método de conexão você pode deixar como Standard (TCP/IP), depois irá mudar o Hostname, para "localhost" deixar a porta 3306, username você vai deixar o "root".

Após fazer essas modificações, você vai clicar em "ok" e vai precisar colocar a senha que você definiu para seu Banco de Dados na hora da instalação, para poder acessar a conexão que você criou, depois você vai clicar em "File" e depois em "Open SQL Script..." e irá selecionar o arquivo "wargame_sql.sql" que estará nesse repositório.

Depois de abrir o arquivo você vai executar o comando "create database db_wargame", depois "use db_wargame", após isso você criará a tabela tbl_user, utilizando todo o comando "create table tbl_user", após isso você vai selecionar o comando "select * from tbl_user;" para conferir se a sua tabela foi criada corretamente, depois você criará a tabela tbl_vulnerabilidades, utilizando todo o comando "create table tbl_vulnerabilidades" e novamente irá executar o comando "select * from tbl_vulnerabilidades;" para verificar se a tabela de vulnerabilidades foi criada, depois você vai selecionar todos os insert na tbl_vulnerabilidades, utilizando todo o comando "insert into tbl_vulnerabilidades", você vai selecionar desde "###### VULNERABILIDADE 1 - Broken Access Control" até o ultimo insert, logo abaixo de "###### VULNERABILIDADE 10 - Server Side Request Forgery" e irá executar, para poder inserir alguns dados na tabela de vulnerabilidades, após isso você irá criar a tabela tbl_armazenamento_arquivos, utilizando todo o comando "create table tbl_armazenamento_arquivos", logo após isso você irá executar o comando "select * from tbl_armazenamento_arquivos;" para verificar se a tabela de armazenamento de arquivos foi criada.

E assim o seu Banco de Dados estará pronto para ser usado.


Instalação das bibliotecas do lado do servidor

Aqui contêm a lista de todos os comandos que é preciso colocar para instalar as bibliotecas necessárias do lado do servidor, na seguinte ordem:

  1. Express:
npm install express

  1. Body-parser:
npm install body-parser

  1. MySQL:
npm install mysql

  1. Dotenv:
npm install dotenv

  1. Cors:
npm install cors

  1. Child Process (incluído no Node.js padrão, não requer instalação separada).

  1. Libxmljs:
npm install libxmljs

  1. HTTP (incluído no Node.js padrão, não requer instalação separada).

  1. FS (File System) (incluído no Node.js padrão, não requer instalação separada).

  1. Multer:
npm install multer

Configurando a conexão com o Banco de Dados

Dentro da pasta "wargame_backend", nos arquivos ".env" e "app.js" têm uma configuração padrão para uma conexão com um Banco de Dados MySQL, é preciso que você mude o "DB_PASSWORD" presentes nesses dois arquivos, para a senha que você estabeleceu no seu Banco de Dados e configurar a conexão conforme a instância que você criou no "MySQL Connections" dentro do seu Banco de Dados MySQL.


Começando O WarGame

Após ter concluído a instalação dos recursos necessários, é preciso iniciar o terminal, com o comando " Ctrl + ' ". ou simplismente clicando em "Terminal" e "New Terminal" e ir até a o arquivo "app.js" que está dentro da pasta "wargame_backend".

Ao chegar nesse arquivo, é preciso colocar o seguinte comando para subir o servidor:

node .\app.js

Após esse comando, o servidor estará funcionando normalmente, e você já pode iniciar o arquivo index.html para subir a aplicação Web.


Após fazer as modificações

⚠️ ATENÇÃO ⚠️

Após realizar alguma modificação no projeto e queira subir para o repositório, utilize os seguintes comandos nessa ordem:

git add .
git commit -m "Escreva_algum_comentário_sobre_sua_atualização"
git push origin Nome_da_sua_branch

Depois você vai precisar ir até o repositório do Fork, que estará no seu perfil, e lá vai aparecer para você fazer um "Pull Request", no qual você colocará um título e um comentário sobre a atualização que você estará fazendo, assim basta esperar um colaborador aceitar seu Pull Request, e todas as modificações que você fez localmente, serão atribuidas no repositório principal do projeto, na sua branch.