
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
Um aplicativo de e-commerce intencionalmente vulnerável para aprender segurança web.
Domine vetores de ataque do mundo real em uma plataforma CTF realista.
Cace flags, explore vulnerabilidades e evolua suas habilidades de segurança.
Docker Hub · npm · Roadmap · Walkthroughs · Contribuir · Good first issues
____ ____ ____ ____ ____ ____ _
/ __ \/ __// __/ / __ \ ___ ___ ___ / __/ ___ ____ / __/ / /_ ___ ____ ___
/ /_/ /\ \ _\ \ / /_/ // _ \ / _ \(_-<_\ \ / -_)/ __/_\ \ / __// _ \ / __// -_)
\____/___//___/ \____/ \___// .__/___/___/ \__/ \__//___/ \__/ \___//_/ \__/
/_/
# Node.js
npx create-oss-store my-ctf-lab && cd my-ctf-lab && npm start
# Docker
docker run -p 3000:3000 leogra/oss-oopssec-store
# Then open http://localhost:3000 and start hacking
Sumário
- Recursos
- Por que o OopsSec Store?
- Instalação
- Hall da fama
- Estrutura do projeto
- Atividade recente
- Testes
- Aviso legal
- Contribuição
- Kit para educadores
- Principais colaboradores
[!WARNING] Este aplicativo contém falhas de segurança intencionais e nunca deve ser implantado em um ambiente de produção.
Recursos
- Aplicativo de e-commerce intencionalmente vulnerável (XSS, CSRF, IDOR, ataques JWT, path traversal, injeção de SQL e muito mais)
- Construído com Next.js, React, Prisma e SQLite
- API REST com vetores de ataque documentados
- 36 desafios CTF em 11 capítulos, organizados em um roadmap de aprendizado estruturado
- Documentação de vulnerabilidades e walkthroughs da comunidade para cada desafio
- Testes automatizados que verificam se os exploits continuam funcionando (PRs que corrigirem uma vulnerabilidade por acidente falharão no CI)
Por que o OopsSec Store?
OopsSec Store é o único aplicativo web intencionalmente vulnerável construído 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 à supply-chain do npm simulada de ponta a ponta.
| OopsSec Store | Juice Shop | DVWA | |
|---|---|---|---|
| Stack | Next.js · React · Prisma | Node.js · Express · Angular | PHP · MySQL |
| Instalação | npx create-oss-store (< 1 min) / Docker | Docker / npm | Docker / manual LAMP |
| Flags de CTF | ✅ Integrado | ✅ Modo CTF opcional | ❌ |
| Roadmap de aprendizado guiado | ✅ 1 roadmap, 11 capítulos, 36 flags | ❌ Apenas painel 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 à supply-chain | ✅ Simulada de ponta a ponta: typosquat no 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 o Juice Shop v20 e o DVWA 2.x. Encontrou alguma 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 de CTF e inicia o aplicativo na porta 3000.
Docker
Não é necessário Node.js. Apenas Docker.
Pelo Docker Hub (mais rápido)
docker run -p 3000:3000 leogra/oss-oopssec-store
Para persistir os dados entre reinicializações:
docker run -p 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 # Start in background (builds image on first run)
npm run docker:logs # Follow container logs
npm run docker:down # Stop the container
npm run docker:reset # Wipe data and restart fresh
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 do aplicativo.
Estrutura do projeto
| Pasta | Descrição |
|---|---|
app/ | Next.js App Router: páginas, rotas de API, componentes React |
app/api/ | Endpoints da API REST (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 das vulnerabilidades e vetores de ataque |
lib/ | Utilitários compartilhados: cliente de banco de dados, autenticação, helpers de API, tipos |
prisma/ | Esquema do banco de dados, script de seed e flags.ts — as flags de CTF e suas dicas |
public/ | Recursos estáticos e payloads de exploit (ex.: demo 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 em 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 o comportamento inseguro. Eles são executados em todo PR; portanto, se você corrigir uma vulnerabilidade acidentalmente, o CI a detectará.
Executando os testes
# Unit tests (utility functions: MD5 hashing, JWT, input filters)
npm run test:unit
# API exploitation tests (requires a running server)
npm run test:api
# E2E exploitation tests (requires a running server)
npm run test:e2e
# Open Cypress interactive mode
npm run test:e2e:open
# All tests
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.
Contribuição
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 o aplicativo
- Reportar e corrigir bugs
- Melhorar a documentação
Consulte o Roadmap para ver o trabalho planejado ou escolha uma good first 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 obter as diretrizes.
🎓 Usando o OopsSec Store em um curso ou CTF?
Confira o Kit para Educadores - um guia pronto para uso com grades de cobertura OWASP, modelos de ementa, FAQ de implantação e um modelo de relatório para estudantes.
/ Principais colaboradores
Autor: kOaDT
Projeto: OopsSec Store
Contato: [email protected]
Licença: MIT
Não remova nem modifique o arquivo LICENSE no seu fork.