
CTF MCP baseado em navegador — confusão de token OAuth e falha de isolamento de sessão (padrão CVE-2025-49596). Apenas DevTools.
O console mostra Sessão Ativa.
Toda chamada de ferramenta é bem-sucedida.
O token OAuth do administrador está em toda resposta.
Boundary de Confiança é um laboratório CTF baseado em navegador, construído em torno de uma falha real de isolamento de sessão em um servidor MCP executado localmente. A vulnerabilidade não é simulada — ela é executada no processo em execução. Três flags. Apenas DevTools.
Um único objeto de contexto mutável compartilhado. Credenciais de administrador definidas na inicialização. Solicitações de usuário que o sobrescrevem parcialmente — mas nunca limpam o que importa.
flowchart LR
subgraph startup["🚀 Inicialização do Servidor"]
A[Agente Admin]
A -->|credenciais carregadas| CTX
end
subgraph ctx["⚠️ Contexto Compartilhado"]
CTX["identidade ✓ definida\npermissões ✓ definidas\ntoken ✓ definido\nsessão ✓ definida"]
end
subgraph request["👤 Chamada de Ferramenta do Usuário"]
U[Agente Usuário]
U -->|identidade ✓ atualizada\npermissões ✓ atualizadas\ntoken ✗ nunca redefinido\nsessão ✗ nunca redefinida| CTX
CTX -->|resposta inclui\nresíduo do admin| U
end
style ctx fill:#1a0a0a,stroke:#ff3333,color:#ff3333
style startup fill:#0a0e27,stroke:#4488ff,color:#00ffff
style request fill:#0a0e27,stroke:#ffaa00,color:#ffaa00O servidor nunca gera erro. A interface informa que está tudo bem. As credenciais estão em algum lugar no tráfego — encontre-as.
Você é um analista de SOC na Elefunk respondendo a um alerta MDR:
"Token de sessão inesperado observado na resposta de chamada de ferramenta do agente. Origem: contexto do usuário. Padrão do token corresponde ao prefixo da credencial de admin. Confiança: ALTA."
O console interno do agente em http://localhost:3000 parece normal. Sua tarefa é confirmar a falha de isolamento e encontrar as três flags que ela produziu — usando apenas os DevTools do seu navegador.
| Flag | Dificuldade | Localização no DevTools | Como | |
|---|---|---|---|---|
| 🟢 | FLAG 1 | Fácil | Network → Response Headers | Cada chamada de ferramenta vaza o token de admin em um cabeçalho de resposta |
| 🟡 | FLAG 2 | Médio | Network → WS → Frames | Dois frames WebSocket chegam ao carregar a página — um ID de sessão está errado |
| 🔴 | FLAG 3 | Difícil | Application → Session Storage | Uma sequência específica + temporização aciona uma escrita de depuração |
Todas as flags seguem o formato CTF{...}. Envie usando o validador na parte inferior do console.
Node.js 18+. Sem Docker. Sem variáveis de ambiente. Sem configuração.
git clone https://github.com/acseguin21/trust-boundary-ctf
cd trust-boundary-ctf
npm install
npm start
Abra http://localhost:3000 — o Console do Agente Elefunk estará esperando.
SPOILERS.md é o documento complementar para instrutores, engenheiros de detecção e sessões de purple team. Ele contém:
Feche se você está aqui para jogar. Abra se está aqui para ensinar.
Swadee Security · Operação: Cadeia de Marfim