Современные браузеры могут использовать JavaScript для чтения и записи в буфер обмена пользователя, что означает, что они также могут управлять им. Базовая технология уже давно устарела, но только в последнее время в сети циркулирует все больше и больше атак (под названием «PasteJacking»), которые используют эту возможность для неопытных пользователей. Реализация на JavaScript банальна.
На вредоносной стороне интегрирован только следующий скрипт:
27670b8ba9840e688369822a3fcfb2d9
Если вы скопируете любой текст с такой страницы, нежелательная строка всегда окажется в буфере обмена (независимо от скопированного текста в этой реализации). Вместо «злой команды» теперь можно придумывать много уродливых вещей. Все становится фатальным, если разрыв строки в конце строки используется для немедленного выполнения кода.:
27670b8ba9840e688369822a3fcfb2d9
Также легко сбросить вывод консоли, чтобы пользователь не сразу заметил, что он ввел. Например, возможно, что при копировании безобидного фрагмента кода можно попутно выстрелить в свои разделы.
27670b8ba9840e688369822a3fcfb2d9
Буфером обмена можно управлять (в другой форме) даже без JavaScript.:
27670b8ba9840e688369822a3fcfb2d9
Если вы выберете желаемый текст, например, в последней версии Firefox (v. 45.0), в буфер обмена попадет не он, а текст за ним.
Здесь можно опробовать оба метода вживую. Здесь вариант JS:
See the Pen Pastejacking #1 by David Vielhuber (@vielhuber) on CodePen.
Как и вариант CSS:
See the Pen Pastejacking #2 by David Vielhuber (@vielhuber) on CodePen.