卧槽?运行 ping 命令执行结果的却是 rm -rf,我太难了……

共 1913字,需浏览 4分钟

 ·

2020-12-21 13:01

公众号关注“杰哥的IT之旅”,

选择“星标”,重磅干货,第一时间送达!

来源:码匠笔记

自从学了编程 QQ 从未被盗,这莫非是以为自己“百毒不侵”了呢?看完这篇文章后你细品品,没准就中过招,真是细思极恐啊。
大家肯定都用过知乎,当复制内容超过一定字数会自动追加一个尾巴,用于申明版权,那么你是否有想过你在网站复制的命令也被修改过?
图1
图2
再比如我们随便找一篇 Ubuntu 安装 MySQL 的文章,找到里面的具体命令,大多数人都会直接复制,很少自己手动敲的。复制下面的安装命令到命令行直接回车,然后正常运行成功了。
apt install mysql-server
我们继续探究这个问题,我找到了一个测试网址,域名如下,你可以复制粘贴到浏览器里面自己测试,很多惊喜的。
https://clipboard-hijack.github.io/
网页上面有一个 ping baidu.com 的命令,就是一个非常简单的测试网络连接的命令。我们直接复制下来粘贴到命令行。
看起来一切正常,光标在最后,我们直接回车出现如下内容,看起来也是非常的正常。
这时候我们直接找一个记事本,我用的是 SublimeText,直接把剪切板里面的内容粘贴到记事本。
妈呀,老铁,这 ping baidu.com 前面怎么还有一堆内容呢?这时候我赶紧看了一下目录,果然出现了一个名字叫做 hijack 的文件,里面内容如下
这时候我们细品一下这个命令
  • 使用 echo > 把恐吓文字写入文件 hijack
  • 写完第一个命令添加 \n 这样我们粘贴命令的时候会自动换行,效果等同于回车,所以命令会自动执行。
  • 使用 history -d $(($HISTCMD-1)) 删除了命令历史,所以即便你用 history 也看不到刚才运行的命令。
  • 最后使用 clear 把命令清除,所以如果你的命令行有内容就会发现输入了一个 ping baidu.com 命令把你的命令行清除了的现象。
就这样神不知鬼不觉的运行了一个命令,现在演示的只是写了一段内容到 hijack,那如果是上传云盘然后真的删除你的文件怎么办?那如果是 sudo rm -rf / 怎么办?没准你还傻傻的输入密码呢。
真是细思极恐啊,回过神看了一下刚才网址的源码。其实实现起来还是很简单的,直接监听一下 copy 事件然后拼接字符串就好了。
虽然学到了,但是咱们不能做坏事哈。
好,那么问题都知道了,可是怎么避免呢?
找了半天终于发现了一个 Chrome 插件,叫做 万能复制(Enable Copy),其他的复制插件都是直接复制内容,这个有一个特定的弹出框用来确定所选择的内容,这样就可以二次检查了。还是回到那个测试的网址,安装插件成功以后,点击插件 icon,鼠标悬浮选中文本,按 C 进行复制。
这次内容就复制对了,除了 ping baidu.com 什么也没有,不过这个插件复制正常内容的时候就显得繁琐了,所以我只在复制命令的时候开启,多一层保障。
插件地址
https://chrome.google.com/webstore/detail/igbahmkffbagkepelepkldjiknhbklga
测试网站地址
https://clipboard-hijack.github.io/

往期资源回顾 需要可自取

推荐阅读

点个[在看],是对杰哥最大的支持!
浏览 24
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报