JavaScript PasteJacking

现代浏览器可以使用 JavaScript 访问和操作用户的剪贴板,包括读取和写入操作。这项底层技术并不新鲜,但直到最近,越来越多的攻击(称为“粘贴劫持”)才开始出现,利用这一功能损害毫无防备的用户利益。用 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.

背部