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!