Falsificación de mensajes en WhatsApp

¿Cómo reproducir este bug?

Antes que nada, vamos a darle los buenos créditos al señor @RiftWhiteHat, que fue el que me enseñó esta maravilla bajo la cual pueden surgir investigaciones para todo aquel que le quiera meter mano y tal vez descubrir nuevas cosas.

Comenzamos presionando la combinación Ctrl+Shift+C. Posteriormente, nos dirigimos a la pestaña Sources desde WhatsApp Web:


Una vez hecho, nos iremos a la pestaña Search situada en la zona inferior y buscaremos la cadena Promise.callSynchronously(function()


Veremos que se produce un match. Haremos click en el resultado obtenido y posteriormente en la zona superior seleccionamos el modo de visión Pretty Print para que no nos sangren los ojos:


Ya en este punto, presionaremos la combinación de teclas Ctrl+F y buscaremos nuevamente por la cadena Promise.callSynchronously(function(). En esta ocasión, buscaremos el segundo match que se produzca:


Posteriormente, establecemos un Breakpoint en la sección var t = e.id;, haciendo para ello click en el número de la línea:


Ahora, lo que haremos será lo siguiente. Nos iremos a una conversación cualquiera con uno de nuestros compañeros, seleccionaremos cualquier mensaje que nos haya enviado y le daremos a Responder para hacer mención a ese comentario.

Escribiremos como respuesta lo que queramos, yo en este caso he escrito No sé si conocerás el canal de S4vitar. Tras enviar el mensaje, veremos que alcanzamos el Breakpoint y que el mensaje no llega a enviarse:


Si nos vamos a la pestaña Console dentro de la pestaña Sources, veremos que en este preciso instante podemos desglosar e, pudiendo así ver todos los atributos que hacen referencia a la conversación que estamos llevando a cabo:


En este caso, muestro sólo una porción para no compartir información privilegiada.

Ya en este punto, podremos manipular el mensaje de mención al que estamos respondiendo de la siguiente forma:


Lo único que tendremos que hacer posteriormente es darle al Play para que el mensaje siga su flujo y salgamos del Breakpoint:


Una vez hecho, podremos ver lo siguiente:


Hemos falsificado el mensaje al cual hacemos mención, haciendo creer al destinatario que nos ha escrito ese mensaje cuando no es así.

Todo esto desde WhatsApp web, y te preguntarás… ¿cómo se ve desde el móvil?, pues se vería exactamente igual:


Como veis, es un bug que a día de hoy se puede seguir explotando. De hecho, atendiendo a los atributos de la variable e, podréis ver que en verdad las posibilidades son infinitas.

Existen montón de valores que se pueden alterar, los cuales han llegado incluso a ocasionar Crasheos de la propia aplicación, como podréis ver en el siguiente artículo:

Este último en concreto ha sido parcheado, sin embargo sólo en el ámbito grupal (grupos de WhatsApp), en el sentido de que ya no afecta a los componentes de un grupo, sino al propio emisor del mensaje especialmente diseñado:


¡Dejo en vuestras manos la investigación para que encontréis cosas chulas!