JavaScript PasteJacking

Los navegadores modernos pueden usar JavaScript para acceder al portapapeles del usuario y manipularlo, tanto para leer como para escribir. La tecnología subyacente no es nueva, pero solo recientemente han surgido cada vez más ataques (conocidos como "pastejacking") que explotan esta capacidad en perjuicio de usuarios desprevenidos. Implementar esto en JavaScript es bastante sencillo.


Solo el siguiente script está integrado en el lado malicioso:

27670b8ba9840e688369822a3fcfb2d9

Si copia cualquier texto de dicha página, la cadena no deseada siempre termina en el portapapeles (en esta implementación, independientemente del texto copiado). En lugar de una "orden maligna", ahora puedes pensar en muchas cosas feas. Todo se vuelve fatal si se usa un salto de línea al final de la línea para ejecutar inmediatamente el código:

27670b8ba9840e688369822a3fcfb2d9

También es fácil restablecer la salida de la consola para que el usuario no se dé cuenta inmediatamente de lo que ha ingresado. Por ejemplo, es posible que al copiar un fragmento de código inofensivo, destruyas tus particiones de paso.

27670b8ba9840e688369822a3fcfb2d9

El portapapeles se puede manipular (de otra forma) incluso sin JavaScript:

27670b8ba9840e688369822a3fcfb2d9

Si marca el texto deseado, por ejemplo en el último Firefox (v. 45.0), no es el texto el que acaba en el portapapeles, sino el texto que hay detrás.

Ambos métodos se pueden probar en vivo aquí. Aquí la variante JS:

See the Pen Pastejacking #1 by David Vielhuber (@vielhuber) on CodePen.

Además de la variante CSS:

See the Pen Pastejacking #2 by David Vielhuber (@vielhuber) on CodePen.

Atrás