Aprenda segurança ofensiva na prática

OwnedBox é uma plataforma de laboratórios onde você explora vulnerabilidades reais — SQL Injection, XSS e File Upload — em um ambiente controlado.

PHP Laravel SQLite License
Sobre

O que é o OwnedBox

Plataforma de treinamento em segurança da informação construída em Laravel. Cada módulo apresenta uma aplicação propositalmente vulnerável: o objetivo é gerar uma vítima, explorar a falha, capturar o token de prova e validá-lo para concluir o laboratório. A interface acompanha o progresso de cada usuário.

⚠️ Aviso de segurança

Este projeto contém código intencionalmente vulnerável para fins educacionais. Use apenas em ambiente local/isolado. Nunca exponha esta aplicação na internet pública.

Laboratórios

Módulos disponíveis

Cada laboratório expõe endpoints unificados de generate-victim e validate-token.

💉

SQL Injection

Injeção de SQL em formulário de login.

/sql
🔓

Cross-Site Scripting

XSS refletido e via cookie.

/xss
📁

File Upload

Upload de arquivo sem validação.

/fileupload
Instalação

Coloque o OwnedBox no ar

Pré-requisitos: PHP 8.3+ (com pdo_sqlite, mbstring, openssl, xml), Composer 2 e Node.js 18+.

1

Clone o repositório

bash
git clone https://github.com/<seu-usuario>/Ownedbox.git
cd Ownedbox
2

Setup completo em um comando

Instala dependências, cria o .env, gera a chave, roda as migrations e compila os assets.

bash
composer run setup
3

Suba o ambiente de desenvolvimento

Roda server + queue + logs + vite juntos. Acesse http://localhost:8000.

bash
composer run dev
🔧 Instalação manual (passo a passo)

Caso prefira entender cada etapa em vez do composer run setup:

bash
# Dependências PHP
composer install

# Crie o arquivo de ambiente
cp .env.example .env

# Gere a chave da aplicação
php artisan key:generate

# Crie o banco SQLite e rode as migrations
touch database/database.sqlite
php artisan migrate

# Dependências e build do frontend
npm install
npm run build

# Inicie o servidor
php artisan serve
Configuração

Configurando o ambiente

O projeto já vem pronto para rodar com SQLite, sem configuração extra. As principais variáveis do .env:

.env
APP_NAME=OwnedBox
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost:8000

# Banco padrão: SQLite (arquivo local, nada para configurar)
DB_CONNECTION=sqlite

# Sessão / cache / filas usam o banco
SESSION_DRIVER=database
CACHE_STORE=database
QUEUE_CONNECTION=database
💡 Quer usar MySQL/PostgreSQL?

Troque DB_CONNECTION e preencha DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME e DB_PASSWORD no .env.

🧰 Comandos úteis
bash
composer run dev     # server + queue + logs + vite
composer run test    # roda a suíte de testes (PHPUnit)
php artisan migrate  # aplica migrations
npm run dev          # apenas o Vite em modo watch
./vendor/bin/pint    # formata o código (estilo Laravel)