Este archivo persiste entre programas. Claude lo lee al iniciar cada sesión
(carga lazy según .target) y lo actualiza al encontrar algo reutilizable.
No lo edites directamente. Usa /remember para añadir entradas con el
formato correcto.
Cada lección sigue este formato exacto. /remember valida antes de escribir:
## YYYY-MM-DD — <programa anonimizado> — #tag #tag #tag
**Trigger:** Qué condición/observación disparó la lección (1-2 frases).
**Lección:** Qué funcionó y por qué. 1-3 frases máximo.
**Comando/PoC:**
\`\`\`bash
comando con target.com como placeholder
\`\`\`
**Aplicabilidad:** bb | htb | internal | ambos
**Anti-patrón:** (opcional) Qué NO hacer en este escenario.
Campos requeridos: Trigger, Lección, Comando/PoC, Aplicabilidad.
Campo opcional: Anti-patrón.
#xss #stored-xss #ssrf #blind-ssrf #idor #subdomain-takeover #oauth
#jwt #graphql #api-misconfig #cors #csrf #file-upload #path-traversal
#sqli #nosql #mass-assignment #business-logic #race-condition #cache-poison
#prototype-pollution #cve-regression #auth-bypass #recon #web #api
#mobile #upload #smuggling #ssti
Una entrada debe llevar al menos un tag de esta lista. Tags fuera de
esta lista se aceptan pero /remember advierte.
Regla de anonimización: nunca el nombre real del programa ni dominios
concretos en el texto principal. Si necesitas el detalle concreto, ponlo en
el fichero local bb-playbook.md con un comentario <!-- privado -->.
Trigger: API REST de pagos con IDs secuenciales en endpoints de usuario.
Lección: Los endpoints /api/v2/users/{id}/transactions no validaban
ownership. Cambio de id numérico → IDOR directo. La v1 antigua ni siquiera
tenía auth.
Comando/PoC:
curl -H "Authorization: Bearer TOKEN_PROPIO" https://api.target.com/api/v2/users/1337/transactions
curl -H "Authorization: Bearer TOKEN_PROPIO" https://api.target.com/api/v1/users/1337/transactionsAplicabilidad: bb Anti-patrón: No te quedes en v2 sin probar v1 — las versiones legacy suelen ser blandas.