剪贴板劫持:复制粘贴中暗藏杀机

现在浏览器大多只允许开发者在一定条件下向用户剪贴板中添加内容。换句话说,剪贴板劫持只能是在浏览器事件中才能够触发。本文将详细的向各位讲述“剪贴板劫持”攻击如何诱骗用户运行恶意代码。

*还需要注意一点,我们这个方法与使用html/css来实现类似的攻击完全不同。

剪贴板劫持Demo

Demo1是一个用来欺骗用户复制,看着完全“无公害”代码的Demo。如果用户尝试使用键盘快捷键(例如ctrl+c或者command+c)复制文本内容,就会触发一个800毫秒的计时器,之后恶意代码就会覆盖掉用户剪贴板中的内容。

echo "not evil"

将会被替换为

echo "evil"\n

注意被添加到行尾的换行符,正常情况下当用户将echo命令粘贴到终端"evil"便自动显示在了屏幕,在执行之前用户是没有机会检测命令的。当然你还可以使用更复杂的payload,就比如Demo3。

touch ~/.evil clear echo "not evil"

该命令将会在你的home目录下创建一个恶意文件,并清除终端显示记录,最后才执行受害者本意想复制的命令,在这里那个命令就是echo 'not evil'咯

攻击影响

该方法可以结合钓鱼攻击诱骗用户执行看起来十分合理的命令,恶意代码会替换掉那些看来十分合理的代码,如果用户在终端中粘贴,攻击者便可以在受害者主机上进行远程代码执行。

如何保护自己?

如何保护自己这还真不是一件简单事情,其中一个解决方案便是在粘贴到终端之前先验证内容。注意了,这里验证的地方也是有讲究的,如果你粘贴到vim中去验证,反而vim的宏可能会欺骗你。不信那就试试Demo2

copyTextToClipboard('echo "evil"\n \x1b:!cat /etc/passwd\n');

demo2中直接粘贴在终端中便是执行echo evil,如果粘贴到vim中则是执行cat /etc/passwd命令。另一个解决方案如下:

"+p -- within vim to paste clipboard without interpreting as vim command

如果你运行 iTerm,命令以换行符结尾的话会得到一个警告提示

*原文链接:github ,鸢尾编译,转自须注明来自FreeBuf黑客与极客(FreeBuf.COM)

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2016-05-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

这些git技能够你用一年了

用git有一年了,下面是我这一年来的git使用总结,覆盖了日常使用中绝大多数的场景。嗯,至少是够用一年了,整理出来分享给大家,不明白的地方可以回复交流。 ---...

2877
来自专栏jouypub

CentOS7上配置Swap交换空间

swap通常在传统机械硬盘上表现更好,在SSD上使用swap可能会造成问题,尤其是硬件老化之后。所以,对于DigitalOcean以及其他使用基于SSD的云主机...

2591
来自专栏linxu shell指南

logrotate机制和原理

日志实在是太有用了,它记录了程序运行时各种信息。通过日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的,就像飞机里的黑匣子,记录的信息再重...

1372
来自专栏烂笔头

Python爬虫代理IP池

目录[-] 在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代理IP,从而保证爬虫快速...

6756
来自专栏Python

cookie详解

今天看到一篇cookie的文章,写的特别详细,感谢 晚晴幽草轩 的分享,原文链接http://mp.weixin.qq.com/s/NXrH7R8y2Dqxs9...

3853
来自专栏星汉技术

Kafka简介及安装配置

4705
来自专栏强仔仔

Redis集群环境中添加和删除节点

上一节中说道如何在window下面安装redis集群,今天给大家介绍一下如何在redis集群环境中添加和删除节点。 首先是配置六个节点,三个为从节点,三个为主节...

2658
来自专栏xingoo, 一个梦想做发明家的程序员

Redis从单机到集群,一步步教你环境部署以及使用

Redis作为缓存系统来说还是很有价值的,在大数据方向里,也是需要有缓存系统的。一般可以考虑tachyon或者redis,由于redis安装以及使用更简单,所...

4396
来自专栏小狼的世界

Gearman的问题分析与深入研究

Gearman作为一个优秀的分布式解决方案,已经被众多的公司或者团队所采用,我在之前的一篇文章中也有过介绍。但是目前对于woker的执行状态和结果监控,特别是放...

1022
来自专栏武军超python专栏

2018年8月1日学习linux中的vi编辑器和多python环境的管理软件Anaconda,miniconda的使用

********************** 今天遇到的新单词: fail  n/v失败 file  n文件 extract v提取 verify...

1992

扫码关注云+社区