首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >我太难了,运行一个 ping 命令结果把 /(根)目录删了

我太难了,运行一个 ping 命令结果把 /(根)目录删了

作者头像
Leetcode名企之路
发布于 2020-12-22 07:14:59
发布于 2020-12-22 07:14:59
80700
代码可运行
举报
文章被收录于专栏:Leetcode名企之路Leetcode名企之路
运行总次数:0
代码可运行

大家肯定都用过知乎,当复制内容超过一定字数会自动追加一个尾巴,用于申明版权,那么你是否有想过你在网站复制的命令也被修改过?

图1

图2

再比如我们随便找一篇 Ubuntu 安装 MySQL 的文章,找到里面的具体命令,大多数人都会直接复制,很少自己手动敲的。复制下面的安装命令到命令行直接回车,然后正常运行成功了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 什么也没有,不过这个插件复制正常内容的时候就显得繁琐了,所以我只在复制命令的时候开启,多一层保障。

所以这个技能你 Get 了吗?

插件地址 https://chrome.google.com/webstore/detail/igbahmkffbagkepelepkldjiknhbklga 测试网站地址 https://clipboard-hijack.github.io/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Java高效学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验