App Web vulnerável para testes 😊

Michelle Mesquita
3 min readOct 12, 2022

--

Olá pessoal, hoje quis trazer para vocês uma aplicação web que eu desenvolvi, que possui diversas vulnerabilidades

O intuito dessa aplicação serve justamente para explicar as pessoas, principalmente aos desenvolvedores, de uma forma lúdica, como podemos tratar e previnir certas vulnerabilidades!

É uma área que eu gosto muito de falar e desenvolver produtos que possam ajudar ainda mais pessoas. Principalmente, porque na área de DevSecOps/AppSec, para você se tornar um profissional ainda melhor, é necessário saber programar para poder corrigir o código e mostrar confiança naquela vulnerabilidade que você está comentando.

Deixo aqui a aplicação também, para quem quiser melhorá-la ou usá-la como base, fique a vontade e pode mandar um PR (pull request no Github) que ficarei super feliz! 💜

Vamos lá!

  • - > Para que a aplicação funcione no seu computador, é necessário que tenha o Docker instalado

Após isso, utilizamos o comando:

 docker-compose up

Então, o sistema estará funcionando na porta :

8085 

Aqui estão listadas todas as rotas:

//script/shell/python-login/python-login/upload/python-login/logout/python-login/blog

E vamos para as vulnerabilidades!

1 — SQL Injection

Ao adicionar o payload básico de injeção:

' or 1=1 — 

Você acessará a página de login, sem precisar utilizar o usuário test/test

Aqui no código, podemos ver a vulnerabilidade e em seguida, a correção com binding dos parâmetros!

código vulnerável
correção do código

2 — Command Injection

Podemos ver abaixo, que está sendo listado o usuário que está rodando o serviço

código vulnerável
correção utilizando uma whitelist (só com os parâmetros que podem ser utilizados)

3 — XSS Refletido e Armazenado

código vulnerável
código com tratativa com escape
outra forma, também é utilizando cabeçalho CSP (aqui na imagem tem outros cabeçalhos importantes também, para questão de upload de arquivo — content-type , iframe (x-frame), man-in-the-middle (strict-transport security)
Como também, utilizar o HTTPONLY como true, assim, não será possível capturar o cookie de sessão do usuário

Podemos analisar isso, nas imagens abaixo:

Após habilitarmos o HTTPONLY

Existem outras vulnerabilidades na aplicação que vocês podem procurar e qualquer ideia para implementar, podem me chamar :)

Espero que tenham gostado 💜

--

--

Michelle Mesquita
Michelle Mesquita

Written by Michelle Mesquita

DevSecOps & AppSec Engineer & Developer girl 👩‍💻

No responses yet