Современные браузеры могут использовать 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.