Respuesta rápida
Information Disclosure es cualquier filtración de datos que ayuda al atacante: tokens, paths internos, versiones de librerías, configuración, código fuente, datos de usuarios. Bug bounty programs lo pagan rápido cuando demuestras impacto (acceso a algo de pago, otro usuario, infra interna). Los 12 patrones más rentables están bien definidos — vale la pena hacerse una checklist.
Los 12 patrones que más se reportan
1. API keys en window.CONFIG o equivalente
Apps SPA inyectan estado global en HTML al cargar:
window.CONFIG = { contentful: { ACCESS_TOKEN: "..." }, algolia: { apiKey: "..." } }
window.__INITIAL_STATE__ = { ... }
window.__NEXT_DATA__ = { ... } // Next.js
Ctrl+U → buscar TOKEN, API_KEY, SECRET. Si encuentras, prueba contra la API real del servicio para ver el alcance.
2. JavaScript bundles con secretos hardcoded
# LinkFinder + SecretFinder sobre los .js
python3 SecretFinder.py -i https://app.target.tld/main.abc123.js
Patrones a grep: aws_access_key, aws_secret, slack_webhook, stripe_secret_key, heroku_api_key, api_token.
3. .git expuesto
curl -sI https://target.tld/.git/HEAD
# Si responde 200 con "ref: refs/heads/main" → .git folder accesible
# Dump completo con git-dumper
git-dumper https://target.tld/.git/ ./loot/
Acceso al historial completo del repo → secretos en commits viejos, código fuente del backend.
4. .env, .bak, .swp accesibles
target.tld/.env
target.tld/config.php.bak
target.tld/.htaccess.bak
target.tld/wp-config.php~
Probar wordlists típicas (raft-medium-files, etc.) en cada subdomain.
5. Stack traces verbose en errores
Forzar errores para ver respuestas:
GET /api/users?id=abc'
GET /api/users?id=null
GET /api/users?id=99999999999999
Si el servidor responde con stack trace incluyendo paths del filesystem (/var/www/app/src/...), versiones de librerías y query SQL → reporte directo.
6. Debug endpoints sin auth
target.tld/debug
target.tld/debug/vars # Go debug pprof
target.tld/actuator/env # Spring Boot
target.tld/actuator/heapdump # crítico — heap dump del JVM
target.tld/.well-known/security.txt
target.tld/__debug__
target.tld/console # Werkzeug Python debug shell — RCE directo si está
Spring Boot Actuator mal configurado es el clásico. Werkzeug con /console es RCE inmediato.
7. Headers leak
Server: Apache/2.4.6 (CentOS) PHP/5.4.16
X-Powered-By: PHP/5.4.16
X-AspNet-Version: 4.0.30319
X-Debug-Mode: 1
X-Backend-Server: app-prod-01.internal.tld
Versions outdated → CVE chain potencial. Internal hostnames → asset enumeration.
8. CORS misconfig que filtra datos
Si Access-Control-Allow-Origin: * con Access-Control-Allow-Credentials: true → cualquier origen puede leer respuestas autenticadas. Reporta con PoC mostrando lectura cross-site.
9. Verbose responses en endpoints públicos
GET /api/v1/products/123
Respuesta incluye campos no necesarios:
{
"id": 123,
"name": "Widget",
"internal_cost": 12.50,
"supplier_email": "joao@supplier.tld",
"stock_db_id": "prod-x42-internal",
"created_by_uid": 88
}
Internal cost, emails de proveedores, IDs internos — todos info disclosure si no son strictly necessary.
10. Open S3 / Azure / GCP buckets
# S3 enumeration
aws s3 ls s3://target-uploads --no-sign-request
aws s3 ls s3://target-prod --no-sign-request
# Common bucket names
target-backups, target-uploads, target-static, target-dev, target-prod
Buckets públicos con backups, dumps de DB, archivos de usuarios → critical info disclosure.
11. Source maps en producción
target.tld/main.abc123.js.map
Si responde 200, contiene el código fuente original desminificado. Reveals lógica del frontend, endpoints internos, variables que se ofuscan en bundle pero no en map.
12. PII leak via short URLs / tokens predecibles
Endpoints como acortadores de URL, links de invoice, password reset, account confirmation con tokens cortos o predecibles → enumeración expone PII de cientos de usuarios. Patrón con histórico de bounties altos.
Cómo lo encuentras: checklist
[ ] Ctrl+U sobre la home y páginas autenticadas → grep TOKEN/SECRET/KEY
[ ] Análisis de cada .js bundle con LinkFinder + SecretFinder
[ ] Probar /.git, /.env, /.bak, /backup, /admin
[ ] Forzar error: id=', id=null, body malformado, content-type raro
[ ] Probar /debug, /actuator, /__debug__, /pprof, /metrics, /console
[ ] Curl con -I para ver Server / X-Powered-By en cada subdominio
[ ] CORS scan en endpoints autenticados
[ ] Diff entre response autenticado y no autenticado: ¿hay campos extra?
[ ] Enumerar buckets S3/Azure/GCP con nombres derivados del target
[ ] curl <endpoint>.js.map en bundles principales
[ ] Tokens cortos / numéricos en URLs de notificaciones, links transaccionales
Cómo se reporta
El triage exige impacto demostrado, no "este header está, es malo". Para cada finding:
- Token / API key: una petición HTTP funcional contra la API real que demuestre el alcance (descargar contenido de pago, listar recursos privados).
- Debug endpoint: capturas o curl mostrando información sensible.
- Bucket abierto: lista de archivos sensibles + 1 ejemplo descargado.
- Source maps: screenshot del código fuente original visible.
Sin impacto reproducible, va a Informational. Con impacto claro, suelen pagar entre €100 (low) y €5.000 (critical, según qué se filtra).
Labs relacionados
Practica recon de tokens, debug endpoints y source maps en apps reales: labs de Information Disclosure.
Practica esto en un lab
Information Disclosure
Sigue aprendiendo · cuenta gratis
Guarda tu progreso, desbloquea payloads avanzados y rankea tus flags.
Artículos relacionados
API keys expuestas en HTML público — $2.000 sin un solo bypass
Una plataforma de productividad entregaba un token de un CMS de terceros en window.CONFIG. Cualquiera con DevTools podía descargar templates de pago. Cómo cazar este patrón en cualquier app SPA.
Metodología de recon básica — del dominio a los endpoints vulnerables
Pipeline mínimo de recon para bug bounty: subdomain enum, live host discovery, URL collection, parameter discovery. Herramientas gratuitas y orden de ejecución.
Análisis JavaScript client-side — endpoints, secrets y source maps
Extracción de endpoints ocultos de JS bundles, detección de secrets, análisis de source maps y dynamic instrumentation con Frida para auditar lógica client-side.