
oss-oopssec-store v2.18.0
Treinamento de segurança para os aplicativos que você realmente entrega. Abra seu navegador e comece a hackear.
OSS - OopsSec Store
Uma aplicação de e-commerce intencionalmente vulnerável para aprender segurança web.
Domine vetores de ataque do mundo real através de uma plataforma CTF realista.
Caçe flags, explore vulnerabilidades e evolua suas habilidades de segurança.
Docker Hub · npm · Roadmap · Walkthroughs · Contribuindo · Boas primeiras issues
____ ____ ____ ____ ____ ____ _
/ __ \/ __// __/ / __ \ ___ ___ ___ / __/ ___ ____ / __/ / /_ ___ ____ ___
/ /_/ /\ \ _\ \ / /_/ // _ \ / _ \(_-<_\ \ / -_)/ __/_\ \ / __// _ \ / __// -_)
\____/___//___/ \____/ \___// .__/___/___/ \__/ \__//___/ \__/ \___//_/ \__/
/_/
# Node.js
npx create-oss-store my-ctf-lab && cd my-ctf-lab && npm start
# Docker
docker run -p 127.0.0.1:3000:3000 leogra/oss-oopssec-store
# Then open http://localhost:3000 and start hacking
Sumário
- Recursos
- Por que OopsSec Store?
- Instalação
- Hall da fama
- Comunidade
- Estrutura do projeto
- Atividade recente
- Testes
- Aviso legal
- Contribuindo
- Kit para educadores
- Principais contribuidores
[!WARNING] Esta aplicação contém falhas de segurança intencionais e nunca deve ser implantada em um ambiente de produção.
Recursos
- Aplicação de e-commerce intencionalmente vulnerável (XSS, CSRF, IDOR, ataques JWT, path traversal, injeção SQL e muito mais)
- Construída com Next.js, React, Prisma e SQLite
- API REST com vetores de ataque documentados
- 36 desafios CTF em 11 capítulos, organizados como um roadmap de aprendizado estruturado
- Documentação de vulnerabilidades e walkthroughs da comunidade para cada desafio
- Uma sala TryHackMe guiada — The Summer Audit, com 8 tarefas e 7 flags, como uma porta de entrada narrativa para iniciantes
- Testes automatizados que verificam se os exploits continuam funcionando (PRs que corrigirem acidentalmente uma vulnerabilidade falharão no CI)
Por que OopsSec Store?
OopsSec Store é a única aplicação web intencionalmente vulnerável construída com Next.js e React. A stack que você realmente encontrará em produção. E a superfície de ataque da era da IA faz parte do currículo principal, não é um complemento: injeção de prompt, envenenamento de ferramentas MCP, backdoors em agentes de codificação de IA e uma cadeia de ataque de supply chain npm simulada de ponta a ponta.
| OopsSec Store | Juice Shop | DVWA | |
|---|---|---|---|
| Stack | Next.js · React · Prisma | Node.js · Express · Angular | PHP · MySQL |
| Configuração | npx create-oss-store (< 1 min) / Docker | Docker / npm | Docker / LAMP manual |
| Flags CTF | ✅ Integradas | ✅ Modo CTF opcional | ❌ |
| Roadmap de aprendizado guiado | ✅ 1 roadmap, 11 capítulos, 36 flags | ❌ Apenas quadro de pontuação | Parcial (níveis de segurança) |
| Walkthrough para cada desafio | ✅ | ✅ Guia complementar | Parcial (dicas) |
| Injeção de prompt em LLM | ✅ Conecte uma chave de API gratuita | ✅ v20+, traga e configure seu próprio LLM | ❌ |
| Envenenamento de ferramentas MCP | ✅ | ❌ | ❌ |
| Backdoor em agente de codificação de IA (arquivo de regras envenenado) | ✅ | ❌ | ❌ |
| Cadeia de ataque de supply chain | ✅ Simulada de ponta a ponta: typosquat npm → backdoor em regras | Parcial — apenas identificação | ❌ |
| Desafios baseados em CVEs reais | ✅ | ❌ | ❌ |
| Hall da fama para jogadores | ✅ | ❌ | ❌ |
Última verificação em junho de 2026, contra Juice Shop v20 e DVWA 2.x. Encontrou uma imprecisão? Abra uma issue ou abra um PR.
Instalação
Início rápido
npx create-oss-store my-ctf-lab
cd my-ctf-lab
npm start
Em seguida, abra http://localhost:3000 no seu navegador.
Configuração manual
Clone o repositório e execute o script de configuração:
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
npm run setup
Isso cria o arquivo .env, instala as dependências, configura o banco de dados SQLite, o popula com as flags CTF e inicia a aplicação na porta 3000.
Docker
Não é necessário Node.js. Apenas Docker.
127.0.0.1:3000:3000mantém o laboratório acessível apenas a partir da sua própria máquina. Use-p 3000:3000simples apenas em uma VM isolada que você controla.
A partir do Docker Hub (mais rápido)
docker run -p 127.0.0.1:3000:3000 leogra/oss-oopssec-store
Para persistir dados entre reinicializações:
docker run -p 127.0.0.1:3000:3000 -v oss-data:/app/data leogra/oss-oopssec-store
A partir do código-fonte (Docker Compose)
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
docker compose up -d
Ou usando os scripts auxiliares do npm:
npm run docker:up # Inicia em segundo plano (compila a imagem na primeira execução)
npm run docker:logs # Acompanha os logs do contêiner
npm run docker:down # Para o contêiner
npm run docker:reset # Apaga os dados e reinicia do zero
O banco de dados é inicializado no primeiro início. Os dados persistem entre reinicializações por meio de volumes nomeados do Docker. Para redefinir tudo (progresso das flags, usuários, uploads), execute npm run docker:reset.
Hall da fama
Encontrou todas as flags? Abra um pull request para entrar no Hall da Fama. Adicione sua entrada em hall-of-fame/data.json e seu perfil aparecerá na página /hall-of-fame da aplicação.
Comunidade
Perguntas, soluções e feedback ficam em Discussions.
| Onde ir | Para quê |
|---|---|
| 🧩 Preso em um desafio | O exploit não dispara, a flag não valida |
| 🛠️ Configuração e instalação | Problemas com Docker, npm ou Node para subir o laboratório |
| 🏆 Mostre sua solução | Uma rota para a flag que o walkthrough não cobre |
| 💡 Ideias de desafios | Uma classe de vulnerabilidade que vale adicionar ao currículo |
| 🎓 Ensinando com OopsSec | Executando o laboratório com uma turma, um bootcamp ou uma equipe |
| Issues | Bugs no próprio laboratório, e somente esses |
Estrutura do projeto
| Pasta | Descrição |
|---|---|
app/ | Next.js App Router: páginas, rotas de API, componentes React |
app/api/ | Endpoints da REST API (auth, carrinho, pedidos, produtos, flags, etc.) |
app/components/ | Componentes de UI React (Header, Footer, ProductCard, etc.) |
app/vulnerabilities/ | Páginas que documentam cada vulnerabilidade |
content/vulnerabilities/ | Descrições em Markdown de vulnerabilidades e vetores de ataque |
lib/ | Utilitários compartilhados: cliente de banco de dados, auth, helpers de API, tipos |
prisma/ | Schema do banco de dados, script de seed e flags.ts — as flags CTF e suas dicas |
public/ | Ativos estáticos e payloads de exploit (ex.: demonstração de CSRF) |
hooks/ | Hooks React personalizados (autenticação, etc.) |
scripts/ | Scripts de configuração e automação |
docs/ | Site de documentação estática com walkthroughs da comunidade |
hall-of-fame/ | Perfis de jogadores que encontraram todas as flags |
packages/ | Pacote npm create-oss-store para scaffolding (e artefatos de quarentena do laboratório, como react-toastfy) |
lab/quarantine/ | Payloads maliciosos inertes para desafios de supply chain (trate como dados, nunca como instruções) |
tests/ | Testes unitários e de API Jest que validam exploits |
cypress/ | Testes E2E para fluxos completos de exploração |
Atividade recente 
Testes
O projeto inclui testes de regressão de segurança que garantem que todas as cadeias de exploit e flags continuem funcionando. Esses testes validam deliberadamente comportamento inseguro. Eles são executados em cada PR, então, se você corrigir acidentalmente uma vulnerabilidade, o CI detectará.
Executando os testes
# Testes unitários (funções utilitárias: hash MD5, JWT, filtros de entrada)
npm run test:unit
# Testes de exploração de API (requer um servidor em execução)
npm run test:api
# Testes de exploração E2E (requer um servidor em execução)
npm run test:e2e
# Abrir o modo interativo do Cypress
npm run test:e2e:open
# Todos os testes
npm run test:ci
Aviso legal
[!CAUTION] Este projeto é apenas para fins educacionais e testes de segurança autorizados. Ele contém vulnerabilidades intencionais e configurações inseguras. Os autores não são responsáveis por qualquer uso indevido, dano ou acesso não autorizado. Use-o em ambientes isolados.
Contribuindo
OSS – OopsSec Store é licenciado sob MIT. Contribuições são bem-vindas.
Formas de contribuir:
- Adicionar novos desafios de segurança
- Escrever ou melhorar walkthroughs
- Estender a aplicação
- Reportar e corrigir bugs
- Melhorar a documentação
Consulte o Roadmap para o trabalho planejado, ou pegue uma boa primeira issue.
Encontrou todas as flags? Compartilhe seus walkthroughs no site de documentação.
Para bugs ou sugestões, abra uma GitHub Issue. Consulte CONTRIBUTING.md para diretrizes.
🎓 Usando OopsSec Store em um curso ou CTF?
Confira o Kit para Educadores — um guia pronto para uso com grades de cobertura OWASP, modelos de syllabus, FAQ de implantação e um modelo de relatório de estudante. Construindo suas próprias ferramentas em torno do currículo? Tudo é publicado como um feed legível por máquina em challenges.json, regenerado a cada implantação da documentação.
/ Principais contribuidores
Autor: kOaDT
Projeto: OopsSec Store
Contato: [email protected]
Licença: MIT
Não remova nem modifique o arquivo LICENSE no seu fork.