BBLABSBBLABS
LaboratoriosAprender desde 0FuncionesPreciosTestimoniosDetrás de BBLABS
  1. Home
  2. Labs
  3. Filtración de las fotos privadas de una cuenta en una red social de fotos (IDOR, Web Cache Deception y XSS)
Medium1h

Filtración de las fotos privadas de una cuenta en una red social de fotos (IDOR, Web Cache Deception y XSS)

By @gorka

App de fotos con cuentas privadas: el contenido privado de la víctima se filtra por IDOR en la previsualización, Web Cache Deception sobre las imágenes privadas y XSS almacenado en los mensajes directos.

This hack was reported with no reward

163 views3 completedUpdated Nov 2026
Log in to start

Learn to find this bug

A real HackerOne hack, reproduced for you to practice.

Create your account and practice real bugs that got paid. Download the environment, find it and learn the exact technique — your path to your first bounty.

650

hunters training

50

labs from real hacks

380

completions

$12,000

paid out for these bugs

40 flags captured this week
Create account
I already have an account

Access to all labs · no commitment · cancel anytime

Hackers who solved it· 3

noniná_sec1
@noniná_sec5 days ago
lydiel2
@lydiel6 days ago
kyzk33
@kyzk327 days ago

Objectives

1
Ver que la cuenta de la víctima (@laura.gomez) es privada y su contenido no debería ser accesible.
2
IDOR: previsualizar por id secuencial un post privado ajeno sin comprobar dueño ni privacidad.
3
Leer el caption e imagen del post privado con la flag directamente desde la previsualización.
4
Comprobar que las imágenes privadas dan 403 pero el CDN las cachea por extensión de URL.
5
Web Cache Deception: que la víctima abra la URL de su imagen y leer tú la copia cacheada.
6
XSS almacenado en un mensaje directo que la víctima abre y ejecuta con su sesión.
7
Exfiltrar el álbum privado de la víctima con el XSS (o leerlo por IDOR/WCD).
8
Capturar la flag: el secreto que vive en el post privado de la víctima.

Information

Platform
HackerOne
Difficulty
Medium
Duration
1h
Bounty
Sin recompensa
Completed
3
Creator
gorka@gorka
Updated
Nov 2026

Download the environment

Reproduce it and find the bug yourself

Create account

Tools

curlBurp SuiteNavegador webPython

Prerequisites

  • Cuentas privadas / ACL
  • HTTP y APIs REST
  • XSS y cachés/CDN

Tags

IDORXSSInformation DisclosureBAC

Achievement you'll earn

Solve this lab to unlock this shareable achievement

Solve this lab to unlock this shareable achievement

Community writeups

Free · no account

The checklist I run on every new target

47 checks ordered by cost: first what can get you in trouble, then the cheap stuff, and finally the expensive stuff — which is where the big bounties are. I'll send it to your inbox right now.

Unsubscribe in one click, from any email.

Contenido del lab

Escenario

Fotia es una red social de fotos con cuentas privadas. La víctima, @laura.gomez, tiene su cuenta en privado y una foto con un secreto. Tú entras con la cuenta pública del atacante leo_martin / password123 (attacker@fotia.local). Tu objetivo es acceder al contenido privado de Laura y capturar el secreto: la flag.

Laura es una víctima simulada (bot) que, cada pocos segundos, abre sus mensajes directos y las imágenes que recibe con su propia sesión.

Guía paso a paso (hay varias vías)

  1. Recon. Observa que el perfil de Laura es privado. Fíjate en las peticiones del visor de posts y de las imágenes.

  2. Vía 1 — IDOR. La previsualización de un post (GET /api/posts/:id/preview y /preview/image) usa ids secuenciales y no comprueba dueño ni privacidad. Cambia el :id hasta el post privado de Laura y lee su caption/imagen con la flag.

  3. Vía 2 — Web Cache Deception. Las imágenes privadas (/u/:username/:file) dan 403 a terceros y el origen manda Cache-Control: private, no-store, pero el "CDN" cachea por extensión de URL ignorando cookies y ese Cache-Control. Consigue que Laura abra la URL de su imagen (un DM con el enlace): su respuesta autorizada queda en la caché compartida y tú la lees.

  4. Vía 3 — XSS almacenado. Un mensaje directo (POST /api/messages) guarda HTML crudo que el cliente pinta con dangerouslySetInnerHTML. Manda a Laura un DM con un payload; cuando lo abre, se ejecuta con su sesión y puedes leer su álbum privado (GET /api/me/album) y exfiltrarlo.

  5. Captura la flag. Por IDOR/WCD lees el post privado directamente; por XSS exfiltras el álbum. En todos los casos obtienes FLAG{…}.

Canales de feedback (no vuelas a ciegas)

  • La previsualización devuelve el contenido del post que pidas por id: ves de inmediato si es de otra cuenta.
  • Las imágenes privadas responden 403 y las cabeceras de caché te dicen si una URL vino de la CDN.
  • El monitor de actividad del bot muestra cuándo Laura abre tus mensajes/enlaces.

Decoys (descártalos por razonamiento)

  • El perfil "privado" oculta el contenido en la UI, pero la API de previsualización no lo protege.
  • Necesitas que sea Laura quien abra la URL en el WCD; abrirla tú no puebla la caché con su respuesta.

La falla del laboratorio

Clases: IDOR / referencia directa a objeto insegura (CWE-639), Web Cache Deception (CWE-525 / CWE-524), Cross-Site Scripting almacenado (CWE-79) y divulgación de información (CWE-200), con autorización incorrecta (CWE-285). OWASP A01:2021 (Broken Access Control) + A03:2021 (Injection).

Las tres vías comparten la raíz: el servidor confía en la capa equivocada para proteger contenido privado — sirve por id sin comprobar propiedad, deja que el borde cachee por la forma de la URL, y pinta HTML de terceros sin sanear. Defensa: autorización por objeto en cada acceso, cachear solo lo explícitamente público variando por sesión y respetando no-store, y escapar/sanear toda salida HTML.

Laboratorio de vídeo educativo basado en la reproducción anonimizada (empresa ficticia Fotia) de técnicas reales de acceso a contenido privado.

The community

This isn't a platform with users.It's people breaking the same things you are.

Inside people ask, share what they found and solve together what would block anyone on their own. It's free to join: no account, no plan, no email required.

Join the BBLABS community on Discord
Join the Discord

Free and open. You don't need a BBLABS account to join.

BBLABS LogoBBLABS

Laboratorios de hacking basados en hackeos reales. Aprende practicando sobre entornos vulnerables, con la resolución explicada paso a paso.

Producto

  • Funcionalidades
  • Precios
  • Labs
  • Aprender desde 0
  • Blog
  • Detrás de BBLABS

Legal

  • Términos
  • Privacidad
  • Cookies
  • Entrar
  • Crear cuenta

Para cualquier duda, bug, soporte o sugerencia puedes escribir a team@bblabs.es

© 2026 BBLABS. Todos los derechos reservados.