运行 ping 命令执行结果的却是 rm rf我太难了

2020-12-18 19:31 Android编程精选

Python实战社群

Java实战社群

长按识别下方二维码,按需求添加

扫码关注添加客服

进Python社群▲

扫码关注添加客服

进Java社群


作者丨码匠笔记

来源丨JAVA葵花宝典


自从学了编程 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 什么也没有,不过这个插件复制正常内容的时候就显得繁琐了,所以我只在复制命令的时候开启,多一层保障。
所以这个技能你 Get 了吗?点击阅读原文直接查看测试代码。
插件地址
https://chrome.google.com/webstore/detail/igbahmkffbagkepelepkldjiknhbklga
测试网站地址
https://clipboard-hijack.github.io/
程序员专栏
 扫码关注填加客服 
长按识别下方二维码进群

近期精彩内容推荐:  

 为何说IT科技公司应该留住35岁员工?

 工友们!大家好,今天你摸鱼了吗?

 缓存穿透,雪崩,击穿以及解决方案分析

 图文详解:如何给女朋友解释什么是微服务?




在看点这里好文分享给更多人↓↓

本文章转载自公众号:AndroidPush

首页 - Android 相关的更多文章: