VulnShop
Laboratório educacional de segurança web: um e-commerce intencionalmente vulnerável em PHP puro, com desafios guiados, código comentado e a versão corrigida de cada falha.
Visão geral
VulnShop é um laboratório educacional de segurança web: um e-commerce fictício, escrito em PHP puro, deliberadamente vulnerável para ensinar segurança ofensiva e defensiva.
Cada falha vem com código comentado, um guia de exercício (objetivo, dica, impacto e correção recomendada) e a versão corrigida ao lado da versão vulnerável, para comparar o padrão inseguro com o seguro.
Tecnologias
- PHP
- MySQL
- Apache
- Docker
- PDO
Funcionalidades
- Vinte e oito vulnerabilidades organizadas em quatro níveis de dificuldade, do básico ao encadeamento de falhas.
- Lista interativa de desafios, cada um com objetivo, dica, impacto e correção.
- Implementações vulnerável e segura lado a lado para cada falha.
- Seeder com dados 100% fictícios (clientes, produtos, pedidos).
- Ambiente isolado em Docker, com um serviço interno simulado usado só em um dos exercícios.
Arquitetura
O VulnShop usa um MVC próprio em PHP puro, sem framework, para deixar o fluxo de cada requisição explícito no exercício.
- Front controller em public/index.php, com Router, camada de banco em PDO, sessão, controllers e models próprios.
- Docker Compose com o serviço web (PHP e Apache), o MySQL e um serviço interno simulado para um dos desafios.
- Migrations e seeders versionados, com dados fictícios para o laboratório.
Temas abordados
Os desafios cobrem, em alto nível, as principais categorias de falhas de aplicações web, com dificuldade crescente.
- Validação de entrada e autenticação.
- Injeção e tratamento inadequado de dados do usuário.
- Controle de acesso e referência direta a objetos.
- Upload inseguro e lógica de negócio.
- Encadeamento de várias falhas nos níveis mais avançados.
Esta página descreve o laboratório em alto nível. Os guias detalhados e os payloads de cada exercício ficam no repositório, para uso exclusivamente educacional.
Segurança do laboratório
Por ser intencionalmente vulnerável, o projeto só deve rodar em ambiente local e isolado, e traz salvaguardas para evitar uso indevido.
- Execução restrita a 127.0.0.1 e bloqueada fora do ambiente local.
- Apenas dados fictícios; sem números reais de cartão e com senhas em bcrypt mesmo no laboratório.
- Banner de aviso em todas as páginas e exercício de SSRF limitado a um serviço simulado na rede Docker.
Screenshots
Desenvolvimento e desafios
O laboratório foi construído em PHP 8.2 com MySQL 8 e Apache, sobre Docker Compose. A proposta é didática: cada vulnerabilidade indica sua localização no código e acompanha uma versão corrigida que demonstra o padrão seguro.
Conclusão
VulnShop é um material de estudo de segurança web: reúne, em uma aplicação única e isolada, exemplos práticos de falhas comuns e suas correções. O uso das técnicas demonstradas só é legítimo em ambientes próprios ou com autorização explícita.
Projetos relacionados
FinTrack
Plataforma de gestão financeira pessoal inspirada em aplicações de organização financeira, desenvolvida com foco em arquitetura, experiência do usuário e evolução para recursos de Open Finance.
FutureData
Sistema de gestão para assistência técnica: ordens de serviço de ponta a ponta, portal do cliente e atendimento automatizado por WhatsApp com IA.