复制是ctrl加什么
啦啦啦啦~~~
在这个毕业照与论文齐飞的日子里!!!
除了无穷无尽的word排版!!!
还有什么比Ctrl+C 和 Ctrl+V更重要的吗???
答案是NO!!!嘿嘿嘿!!!
咦咦咦???上面是谁在说话???
什么意思小编好像不太不懂啊~~~
这眼神杀伤力太强!!小编不敢自行体会~~~
Ctrl+C 和 Ctrl+V 对论文有多大的影响小编不知道,但是Ctrl+C 和 Ctrl+V 对一个程序猿的影响那可是惊天动地啊~~~
毕竟程序猿的座右铭就是:
我们不生产代码,我们只是代码的搬运工!!!
能用Ctrl+C 和 Ctrl+V 解决的,绝不用手工!!!
最近小编就在代码搬运工厂GitHub上看到一个丧心病狂的分享:Pastejacking 复制劫持!!!
专杀各种初级程序猿!!!
可谓复制粘贴执行党的梦魇!!!
还能不能安心的写代码啦~~~哭哭哭
Pastejacking有两种攻击姿势,一种是是基于典型的HTML/CSS隐藏属性,比如:这个网站
你按照提示复制Ctrl+C:
git clone git://git.kernel.org/pub/scm/utils/kup/kup.git
却发现Ctrl+V之后出现了一堆什么鬼:
git clone /dev/null; clear; echo -n “Hello “;whoami|tr -d ‘n’;echo -e ‘!nThat was a bad idea. Don'”‘”‘t copy code from websites you don'”‘”‘t trust!
Here'”‘”‘s the first line of your /etc/passwd: ‘;head -n1 /etc/passwd
git clone git://git.kernel.org/pub/scm/utils/kup/kup.git
在开发者工具中查看DOM树可以发现,其在隐藏属性中放了些不想让我们看到的内容!!!
然而你以为这就是全部???
这只是一种弱爆了的小姿势,大招还在后面呢~~~
剪贴板劫持攻击!!!其攻击效果和上一攻击姿势类似,只不过剪贴板劫持攻击会更让你防不胜防一点,它可以在你任何一个点击事件后触发,并且可以控制将一些十六进制字符复制进去,甚至还能用来干掉你的Vim,比如:一个栗子
你看到的是:
这回小编长了个心眼,开发者模式看了一下,没有任何隐藏目录,然后放心的Ctrl+C复制:
echo “not evil”
却发现Ctrl+V之后就变成了:
echo “evil”rn
这个栗子通过JavaScript hook到复制事件上,一旦用户使用ctrl + c或右键单击复制就会触发事件。方法适用于Chrome,Firefox、IE和Safari。
如果你想说“rn”有什么用,呵呵,如果你是直接复制这段代码到你的终端上你就会发现它会使你粘贴上去的代码自动运行,根本不会给你机会审查要执行的命令。
那么如果这不是一个简单的回显命令,而是一段恶意可执行脚本,呵呵~~
再举个栗子
Ctrl+C复制:
echo “not evil”
却发现Ctrl+V之后就变成了:
touch ~/.evil
clear
echo “not evil”
这个栗子演示了一个keydown hook事件,如果用户使用键盘快捷键,比如ctrl + c 或者 command + c复制,一组800毫秒计时器就会开始计时,用于计时恶意代码覆盖用户剪贴板。该演示适用于Chrome、Firefox和ie浏览器。
这个命令将创建一个evil文件在你的home目录,然后清除终端数据,再显示用户打算复制,粘贴到终端echo “not evil”的命令,企图掩盖其生成了evil文件的恶意行为。
怎么实现的呢???只是因为加了这样一个控制脚本,脚本代码详见原文~~~
哎~~~这年头程序猿不好做啊!!!
至于防御办法只能警告广大程序猿们,终端是个黑洞啊!!!
任何代码复制到终端之前都要加倍的小心谨慎啊!!!
最好是先复制到一个第三方的编辑器内看一看,说不准就发现了一些什么奇怪的牛鬼蛇神呢!!!
比如小编就还见过这样一个大招:
Function(“????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????”.replace(/.{8}/g,function(u){return String.fromCharCode(parseInt(u.replace(/u200c/g,1).replace(/u200d/g,0),2))}))();
哈哈哈哈~~~小编啥也不说,不服来战!!!
不过别用vim作为验证,因为万能的vim给跪了。。。
譬如如下的攻击方式:
copyTextToClipboard(‘echo “evil”n x1b:!cat /etc/passwdn’);
复制到Vim中,就会利用Vim的Macro来获取你的用户密码等。如果你用的是ITerm,它会提醒你那些自动利用换行来执行的命令:
嘻嘻嘻~~~虽然不厚道但听到vim给跪了的消息小编还是好开心啊~~~
谁让小编这么多年还是玩不转linux和vim呢~~~
最后小编要说程序猿不易,且行且珍惜啊~~~