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

As screenshots deste projeto serão adicionadas em breve.

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

CRUD App

Base em Laravel para estudo de operações CRUD, montada com ambiente Docker (Laravel Sail) e MySQL.

Ver detalhes Demo
Pré-visualização do projeto FinTrack

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.

Ver detalhes

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.

Ver detalhes Demo